编写一个导表功能,先将表内数据清空,然后根据查找数据插入表中,其中中文显示为乱码,求原因。
    sql语句为:    delete from A 
    insert into A ( a, b, c)
    select distinct xx,bb,CASE WHEN CITY = '****' THEN '北京市'
                          .....
                          END
    from C 
    left join  .......    结果发现插入的中文城市名为乱码

解决方案 »

  1.   

    字段改為nvarchar/nchar--unicode字符新增時 N'字符串'
      

  2.   


    我原来就是这样写的。nvarchar,unicode.一样这样的问题
      

  3.   


    win7 32位 home版本 简体中文版
      

  4.   

    找到问题的答案以及解决方法了。原因为:读入sql语句文件时,中文即为乱码,插入数据库的中文也为乱码。那么为什么读入sql文件时是乱码呢?
    因为使用了MFC的CStdioFile,该函数在读取文本中文,转换为unicode时会出现乱码。解决方案:中转。
    char* old_locale = _strdup( setlocale(LC_CTYPE,NULL) ); 
    setlocale( LC_CTYPE, "chs" );*****setlocale( LC_CTYPE, old_locale ); 
    free( old_locale );