免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6553 | 回复: 7
打印 上一主题 下一主题

[求助]终端下输出mysql日文查询结果为乱码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-23 20:37 |只看该作者 |倒序浏览
我使用secure CRT连接我的mysql服务器,进行select查询日文记录,终端下输出均为乱码。

我的mysql服务器字符集相关变量设置如下:
character_set_client    latin1
character_set_connection        latin1
character_set_database  utf8
character_set_results   latin1
character_set_server    utf8
character_set_system    utf8

系统终端默认字符为
ja_JP.UTF-8

我通过其他的mysql GUI工具均能正确的查询出日文记录
请高手帮忙,我如何设置才能在终端下正确的查询出日文记录,谢谢。

论坛徽章:
0
2 [报告]
发表于 2006-06-23 21:15 |只看该作者
mysql --default-character-set=某个日文编码
这样试试呢?

论坛徽章:
0
3 [报告]
发表于 2006-06-24 00:02 |只看该作者
原帖由 ncowboy 于 2006-6-23 21:15 发表
mysql --default-character-set=某个日文编码
这样试试呢?



数据库服务器的编码设置是不可以更改的,这样就会影响其他前台应用程序的字符的正常显示。
在终端正常显示日文字符,能不能有修改数据库变量之外的其他方法呢?

论坛徽章:
0
4 [报告]
发表于 2006-06-24 11:21 |只看该作者
原帖由 靖康 于 2006-6-23 20:37 发表
我使用secure CRT连接我的mysql服务器,进行select查询日文记录,终端下输出均为乱码。

我的mysql服务器字符集相关变量设置如下:
character_set_client    latin1
character_set_connection        latin1
...


连接的时候记得执行
set names ja_JP(日文对应的字符集);

论坛徽章:
0
5 [报告]
发表于 2006-06-24 14:08 |只看该作者
character_set_database  utf8,你的数据库默认是 utf8 编码。
你再 show create database DBName 和相关的 show create tabe TBName 检验一下你的数据库和表是不是也是 utf8 编码的。虽然 你是输入的是日文,utf8 也可以存储日文。
总之,在登录到 MySQL 服务器后,用 set names XXX 设置一下连接的字符集,XXX 根据上面 show create 的结果。这个不会变更服务器设置,不用担心,只是说客户端和服务器端本次通讯使用什么编码。

论坛徽章:
0
6 [报告]
发表于 2006-06-26 06:03 |只看该作者
看了楼上诸位的回复后,我做了如下操作,还是存在问题。

日文记录正常显示时是这样:
オーミケンシ<3111.T>、2005年度第1四半期連結決算=当期損失は8.25億円、赤字幅縮小

当变量设置如下时:
| character_set_client     | utf8                                                            
| character_set_connection | utf8                                                                  
| character_set_database   | utf8                                                                    
| character_set_results    | utf8                                                                    
| character_set_server     | utf8                                                                    
| character_set_system     | utf8

记录全是乱码。

当变量设置如下时:
| character_set_client     | ujis                                                                    
| character_set_connection | ujis                                                                    
| character_set_database   | utf8                                                                    
| character_set_results    | ujis                                                                    
| character_set_server     | utf8                                                                    
| character_set_system     | utf8   
记录显示如下:只有部分假名正常
“オ〖ミケンシ<3111.T>、2005钳刨妈1煌染袋息冯疯换♂碰袋禄己は8.25帛边、乐机升教井”

当变量设置如下时:
| character_set_client     | gb2312                                                                  
| character_set_connection | gb2312                                                                  
| character_set_database   | utf8                                                                    
| character_set_results    | gb2312                                                                  
| character_set_server     | utf8                                                                    
| character_set_system     | utf8     
记录显示如下:还是有部分不正常                                                               
“ オ?ミケンシ<3111.T>、2005年度第1四半期???算=当期?失は8.25??、赤字幅?小”

请问有什么好地解决方案可以让这条记录完全正常显示吗?

[ 本帖最后由 靖康 于 2006-6-27 01:44 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2006-06-27 02:58 |只看该作者
又从网上找了一些资料,发现gb2312支持包括简化汉字,日文假名在内的7445个图形字符,也就是说它能够支持部分日文的显示。
而gbk作为gb2312的超集,应该支持日文假名更多一些吧。
于是将connection character 和client character设成gbk
日文记录基本可以正常显示了,当然还有个别冷僻的日文字符显示为问号。
但是最令我不解的是我使用日文编码ujis和sjis来作为connection character set和client character set的变量值,均显示乱码,让我不解。

论坛徽章:
0
8 [报告]
发表于 2006-06-27 14:07 |只看该作者
具体情况还是要具体分析吧。你那里的情况我也不是很熟悉。
象我这里,我一般都是把所有字符集都定义为一个,这样可以保证进出的字符集统一。
而你说的样子,我感觉是经过几次编码转码,这中间可能会造成一些字符集丢失吧。
原来正常情况下,你知道字符集都是怎么设置的么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP