wangjh1984
> odbcGetInfo(channel)
DBMS_Name DBMS_Ver Driver_ODBC_Ver
"MySQL" "5.1.30-community" "03.51"
Data_Source_Name Driver_Name Driver_Ver
"mysql" "myodbc5.dll" "05.01.0005"
ODBC_Ver Server_Name
"03.52.0000" "127.0.0.1 via TCP/IP"
在执行sqlQuery(channel,"select * from mytable where country='中国'")时,不能查询出counry为中国的记录。但是表mytable中明明有。
我估计是字符编码的问题,请问有没有人遇到类似的问题?如何解决?多谢!
另外,我将表导入access中,重新执行sqlQuery(channel,"select * from mytable where country='中国'"),结果正常。
yihui
应该是编码问题,看看你的MySQL数据库编码是什么吧。写程序尽量避免多字节的字符,处理起来很麻烦的。比如“中国”应该是某个地区变量吧,能否用数字或者字母编码呢?
wangjh1984
[quote]引用第1楼谢益辉于2009-02-12 19:39发表的“”:
应该是编码问题,看看你的MySQL数据库编码是什么吧。写程序尽量避免多字节的字符,处理起来很麻烦的。比如“中国”应该是某个地区变量吧,能否用数字或者字母编码呢?[/quote]
mysql数据库的编码是设置过utf8、gb2312、gbk,但是均未成功过。你提到的处理多字节的方法能够很好的处理这个问题,但是我个人感觉多字节字符的处理应该不是件困难的事情,google就很好的解决了这个问题,mysql应该也具有处理这个的能力。期待有经验的人协助解决:)多谢!
bjt
这个应该不是 R 的问题吧。
如果是 sql 的结果在 R 里出现乱码,应该比较常见。
yihui
对了,楼主只是在Access中试了一下,有没有在MySQL中直接试过查询?