MYSQL utf8/gbk/big5与英文/简中/繁中的关系

stephen_deng 2007-11-20 06:28:43
设置统一的字符编码能解决乱码问题,
我是用ACCESS+MYSQL+ODBC做开发的
在大陆一家公司(服务器和客户机都是简体中文系统)使用UTF8字符编码时其中文就会乱码,改用GBK就正常了,
难道是UTF8不支持简中?会不会也一样不支持繁中呢?

如果我想统一大陆/香港/美国的公司的MYSQL资料,做一个master,slave数据流向工程的话我只有一个slave服务器,意思是只能有一个MYSQL目录,把大陆/香港/美国各地的数据汇合一起(有独立的数据库名比如SZDB,HKDB,USDB)
因为每一个地区的都要设置不同的编码,如何统一啊?有朋友遇到过这种问题不?
...全文
746 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
stephen_deng 2008-01-24
  • 打赏
  • 举报
回复
老板以后还有更麻烦的事情呢,他XX的 1>多个master-> 一个slave, 2>一台电脑能否安装多个mysql, 3>越南文/韩文的编码 4>集团版系统的开发应用(我的不是web程序),
stephen_deng 2008-01-24
  • 打赏
  • 举报
回复
我的贴子是谁看谁得益,但答贴的痛苦,呵呵,我现在问的问题都 "mysql使用/乱码/多个master->一个slave/一台电脑能否安装多个mysql" 一条龙了,哈,我自己顶贴的比回贴的还多
stephen_deng 2008-01-24
  • 打赏
  • 举报
回复
解对了马上给分,XX的,这些东西也真烦
stephen_deng 2008-01-24
  • 打赏
  • 举报
回复
理解后编码的一致性后修正一下以前的信息:
现在的情况是这样子的,用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.

大家有好的看法吗
stephen_deng 2008-01-22
  • 打赏
  • 举报
回复
trainee
第2种方法是没错的
至于mysql command line client/mysql query browser查看是乱码,是因为你没设对2者的client环境


要去怎么设置呢?我是在服务器(简体中文服务器,mysql是英文版的)上运行mysql command line client/mysql query browser查看出来的结果,
daisylh 2007-12-12
  • 打赏
  • 举报
回复
都統一沿用UTF-8(網頁編碼,MYSQL編碼要一致)
懒得去死 2007-12-11
  • 打赏
  • 举报
回复
Data too long for column 'payee' at row 1,(其实这字段是足够长的)

你的这个字段的编码还有整个 表的编码是什么 ?一定要跟页面的编码一致
trainee 2007-12-11
  • 打赏
  • 举报
回复
第2种方法是没错的
至于mysql command line client/mysql query browser查看是乱码, 是因为你没设对2者的client环境
懒得去死 2007-12-06
  • 打赏
  • 举报
回复
我说的UTF8是乱码的,只得是在库里保存的是用UTF8变码过的,你出来后必须用UTF8编码才能读出正确的结果。
toddzst 2007-12-06
  • 打赏
  • 举报
回复
我也碰到同样问题,反正用UTF8不好使。
stephen_deng 2007-12-06
  • 打赏
  • 举报
回复
自己顶一下
stephen_deng 2007-12-05
  • 打赏
  • 举报
回复
问一下大家,我深圳的一台服务器(简体中文)MYSQL数据库中的
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,乱码在情理这中

第一点怎么看,能有兄弟帮一下不,有什么解决办法
stephen_deng 2007-12-05
  • 打赏
  • 举报
回复
TO:帐号:yueliangdao0608(骑着上帝看戏)
不是吧,UTF8是国际语言,我见别人的文章上说只要统一UTF8编码,server,connection,client,result,db都用UTF8,中文就不乱
懒得去死 2007-11-20
  • 打赏
  • 举报
回复
UTF8编码的中文本来就是乱码的。

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧