BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #5618同步于 2011/5/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

【求助】SQLServer导入Mysql中文乱码

michael2008
2011/5/26镜像同步8 回复
SQLserver 2008上的数据库,用SQLserver的export功能,利用ODBC作为桥梁,导入到Mysql数据库中。导入正常,但中文存在乱码。Google了几种可能的解决方案,尝试未果,特求助万能的论坛~ 尝试的解决方案是: 1、将mysql的数据库建立为GBK编码,还是乱码; 2、在Mysql的my.ini里设置为GBK编码,依旧乱码; 3、ODBC连接设置initial statement为:set @@session.sql_mode=ANSI_QUITES,主要是为了解决SQL语句中无法识别引号的问题,不知还能否同时加上set names 'gbk'。
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
zzcc机器人#1 · 2011/5/27
mysql字符集,数据库字符集,连接字符集都是GBK吗?
RockyPrince机器人#2 · 2011/5/27
编码为utf-8
michael2008机器人#3 · 2011/5/27
mysql建立的时候用的是: create database microblog default CHARACTER SET gbk COLLATE gbk_chinese_ci; ODBC连接的时候选择是GBK sqlserver的编码默认是GBK吧?这个没有确认。 【 在 zzcc 的大作中提到: 】 : mysql字符集,数据库字符集,连接字符集都是GBK吗? : --
michael2008机器人#4 · 2011/5/27
utf-8确实是为了保持兼容性的一个方法,只是抓取数据的时候用JDBC存入了sqlserver,没有考虑如何编码,现在想要导入到MySQL Cluster里面去,结果就出现了乱码。 当然,以后的数据不论是抓取还是存储,都转为UTF-8编码再存,就不会有乱码问题了,只是当下不得不解决乱码问题。 【 在 RockyPrince 的大作中提到: 】 : 编码为utf-8 : --
coolfantasy机器人#5 · 2011/5/27
先确认一下啊。。。 如果是 UTF-8 就转换一下成 GBK 就行了 在导入 MySQL 前执行一下 SET NAMES GBK; 【 在 michael2008 的大作中提到: 】 : mysql建立的时候用的是: : create database microblog default CHARACTER SET gbk COLLATE gbk_chinese_ci; : ODBC连接的时候选择是GBK : ...................
michael2008机器人#6 · 2011/5/27
首先谢谢大家的帮助!尝试诸多方法,还是无效。 查询Mysql数据库,发现可能还是mysql数据库编码的问题,如下,其中只有一部分的设置成功了,其他的都还不是GBK的编码。 mysql> show variables like 'character%'; +--------------------------+---------------------------------------------------- -----+ | Variable_name | Value | +--------------------------+---------------------------------------------------- -----+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | gbk | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | gbk | | character_set_system | utf8 | | character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.5\share\chars ets\ | +--------------------------+---------------------------------------------------- -----+ 8 rows in set (0.00 sec) 使用的my.ini文件编码设置如下: [client] defualt-character-set=gbk character_set_client=gbk character_set_connection=gbk character_set_results=gbk [mysql] default-character-set=gbk [mysqld] character-set-server=gbk 按照网上的说法,应该是只设置如下: [mysqld] default-character-set=gbk //数据库的 set-variable=max_connections=1000 [client] default-character-set=gbk //服务器+客户端+连接的 但实际上无效,我按照查询得到的变量一个一个在my.ini里面赋值为GBK,但没有生效,查询show variables like 'character%';得到的结果还是并非都是GBK。
zzcc机器人#7 · 2011/5/27
你楼上那个set names试了吗? 【 在 michael2008 的大作中提到: 】 : 首先谢谢大家的帮助!尝试诸多方法,还是无效。 : 查询Mysql数据库,发现可能还是mysql数据库编码的问题,如下,其中只有一部分的设置成功了,其他的都还不是GBK的编码。 : mysql> show variables like 'character%'; : ...................
coolfantasy机器人#8 · 2011/5/27
如果你的源数据不是 GBK 编码的,MySQL 再怎么设置都白搭 【 在 michael2008 的大作中提到: 】 : 首先谢谢大家的帮助!尝试诸多方法,还是无效。 : 查询Mysql数据库,发现可能还是mysql数据库编码的问题,如下,其中只有一部分的设置成功了,其他的都还不是GBK的编码。 : mysql> show variables like 'character%'; : ...................