最近在做MySql往SqlServer同步数据的模块,基本思想就是MySql导出.txt文件,再由SqlServer导入即可,(很简单吧O(∩_∩)O~),但是!!!,MySql导出的文件时UTF-8编码格式的,导入到SqlServer里面就乱了,后来我就想统一编码(手动把文件编码统一就不乱吗了),但是SqlServer貌似不支持UTF-8是吗?如果支持那怎么让它支持那,还有就是MySql我把它的配置文件改了默认GBK(因为SqlServer默认是这个),但是输出文件还是UTF-8编码格式的(吐血郁闷中....),大家有没有好法子啊?这个图片就是我导出MySql表的SQL语句MySQLSQL Server乱码UTF-8gbk

解决方案 »

  1.   

    是用MYSQLDUMP导出?
    mysqldump -uroot -p --default-character-set=gbk >r:\temp\1234.TXT
      

  2.   

    我试试啊,我以前用的是select * from tab_name into outfile 'D:\1.txt';这个没办法嘛?
      

  3.   

    select * from tab_name into outfile 'D:\1.txt';
    用WORD、ULTRAEDIT之类的软件打开,会有提示,再另存为GBK之类的TXT
      

  4.   

    先set names gbk;
    然后再导出
      

  5.   

    确实是可以用工具另存为gbk格式的,但是我的是一个VC++同步数据库的程序,必须要自动完成,对吧,关于mysqldump -uroot -p --default-character-set=gbk >r:\temp\1234.TXT   我试了很多次都不成功,这是我的语句
      

  6.   

    root是用户名,test是数据库名字,tab_smallCode是表名字,不可以,大家可以本地试试
      

  7.   

    MYSQLDUMP不是SQL命令,在WINDWOS的窗口下运行,不是在MYSQL中运行
      

  8.   

    select * from tab_name into outfile 'D:\1.txt';
    用汉字的字段用
    convert(f1 using gbk)
      

  9.   

    还有补充一条mysqldump可以了,但是里面的东西好像不是纯表数据啊,这样就没办法导入SqlServer了啊,SqlSerVer只要一个表
      

  10.   

    convert(f1 using gbk)是什么意思,在运行select into前使用是吗?
      

  11.   

    将F1字段的内容转换为GBK字符集select convert(f1 using gbk),f2,f3.... from tab_name into outfile 'D:\1.txt';
      

  12.   

    mysql> select * convert(Stitle using gbk),convert(Scontent using gbk) from tab_s
    mallode into outfile 'D:\6.txt';  Stitle和Scontent是我表的两个字段,不行的,SQL语句有错,
      

  13.   

    前面加上set names 'gbk';
    然后再
    select ... into ..
      

  14.   

     select *,convert(Stitle using gbk),convert(Scontent using gbk) from tab_s