设置统一的字符编码能解决乱码问题,
我是用ACCESS+MYSQL+ODBC做开发的
在大陆一家公司(服务器和客户机都是简体中文系统)使用UTF8字符编码时其中文就会乱码,改用GBK就正常了,
难道是UTF8不支持简中?会不会也一样不支持繁中呢?如果我想统一大陆/香港/美国的公司的MYSQL资料,做一个master,slave数据流向工程的话我只有一个slave服务器,意思是只能有一个MYSQL目录,把大陆/香港/美国各地的数据汇合一起(有独立的数据库名比如SZDB,HKDB,USDB)
因为每一个地区的都要设置不同的编码,如何统一啊?有朋友遇到过这种问题不?
我是用ACCESS+MYSQL+ODBC做开发的
在大陆一家公司(服务器和客户机都是简体中文系统)使用UTF8字符编码时其中文就会乱码,改用GBK就正常了,
难道是UTF8不支持简中?会不会也一样不支持繁中呢?如果我想统一大陆/香港/美国的公司的MYSQL资料,做一个master,slave数据流向工程的话我只有一个slave服务器,意思是只能有一个MYSQL目录,把大陆/香港/美国各地的数据汇合一起(有独立的数据库名比如SZDB,HKDB,USDB)
因为每一个地区的都要设置不同的编码,如何统一啊?有朋友遇到过这种问题不?
解决方案 »
- 统计数据sql
- mysql5中如何查询出自增列的断号(被删掉的)
- MySQL执行count语句为什么这么慢呢?谁能帮我看看是什么原因
- 求text类型转化为varchar()
- mysql触发器和存储过程的建立
- MYSQL的问题,求一SQL语句
- MySQL 5.0的存存储过程中如何抛出异常?(50分)
- mysql 查询一周,三个月,半年的数据怎么来写sql 语句
- MySQL的所有用户,包括root都被删除了,请问该如何恢复?
- 关于insert into ... on duplicate key update批量修改问题
- mysql创建新用户问题
- 请问大虾 JAVA如何备份和恢复mysql数据库。希望详细的例子
不是吧,UTF8是国际语言,我见别人的文章上说只要统一UTF8编码,server,connection,client,result,db都用UTF8,中文就不乱
character_set_client
character_set_connection
character_set_database
character_set_results
character_set_server
character_set_system
全是设置为utf8了,我试了以下的客户端连接
1>在ODBC的initial statement设置SET NAMES UTF8后,用ACCESS链接一MYSQL表直接打开,手动写入几个中文,提示:
Data too long for column 'payee' at row 1,(其实这字段是足够长的)
不明白为什么用utf8编码的客户端写入utf8的库中还会出现这样的问题
数据传送应该是这样client utf8->connection:utf8->server utf8->results utf8
2>发现用UTF8不行后我把SET NAMES UTF8 改成 SET NAMES GBK,好,这下没事了,不提示了,而且在ACCESS中显示的中文是没问题的,但用mysql command line client/mysql query browser查看是却是乱码,
client GBK->connection:utf8->server utf8->results utf8,乱码在情理这中
3>把SET NAMES GBK去掉,什么也不写,结果一样。(简体中文系统应该默认是以GBK编码发送给MYSQL的)
client GBK->connection:utf8->server utf8->results utf8,乱码在情理这中第一点怎么看,能有兄弟帮一下不,有什么解决办法
至于mysql command line client/mysql query browser查看是乱码, 是因为你没设对2者的client环境
第2种方法是没错的
至于mysql command line client/mysql query browser查看是乱码,是因为你没设对2者的client环境
要去怎么设置呢?我是在服务器(简体中文服务器,mysql是英文版的)上运行mysql command line client/mysql query browser查看出来的结果,
现在的情况是这样子的,用access2003链接下来的表中中文字不会乱,用mysql command client line/mysql query browser查看中文是乱码,
mysql数据中所有的编码(show varables like 'character_set_%'命令)信息:
character_set_client |utf8
character_set_connection |utf8
character_set_database |utf8
character_set_filesystem |binary
character_set_results |utf8
character_set_server |utf8
character_set_system |utf8 也就是数据库中所有的编码都是UTF8
但我的mysql odbc 3.51中没有设置 SET NAMES UTF8,或set names GBK(可能是这个影响了)
没设置留空了,请问一下是不是这个client端没设置统一的编码造成的?我试着现在补上SET NAMES UTF8,但变成不能插入中文了,要设置成set names GBK才可以,用了set name GBK后而且用mysql command client line/mysql query browser查看刚插入的中文也不乱码了,access中的刚插入的中文也不乱了,但以前的中文数据却乱了,痛苦哦,,,,
不过这个也不是问题,可以导出原来的资料再利用GBK编码导进去,我也尝试了,成功没问题,
之后我把这个没问题的MYSQL中的一个库backup出来传去香港一个服务器上(繁体中文系统,mysql版本一样都是5.19 NT)并导入mysql中,准备做master/slave,但问题来了,在香港服务器上的那个没问题的库却出现了乱码(mysql command client line/mysql query browser或access2003
查看都乱),香港那服务器上的mysql设置和大陆这边的一样,所有的编码都是UTF8唯独mysql odbc 3.51没设置set names之类的,但我不觉得是ODBC没设置的原因,用mysql command client line/mysql query browser根本就不用ODBC.大家有好的看法吗