Mac OSX系统 RODBC连接Mysql数据库乱码的解决方法

最新学习了R语言,对R的环境配置,数据库连接,批处理脚本等有了大概的了解。但是发现,R中的RODBC连接Mysql数据库,查询带中文的记录时会导致乱码,中文变成“?”,如图:



一开始怀疑是R console的问题,然后打印中文字符,可以正常显示:



说明不是R这个软件的编码问题,那应该是ODBC连接Mysql时出现了编码不匹配(MySql的数据库统一编码“utf8”),回忆以前使用JDBC的数据源时候,也需要加入UTF-8的编码,否则也是出现“?”的乱码现象:

jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf-8

那应该是DSN配置的时候,没有设置编码,百度“ODBC 连接mysql 乱码”后,找到了windows下的DSN设置编码的方法,

参考博客:http://blog.csdn.net/yuanbohx/article/details/6648397

但是Mac下的ODBC Administrator软件没有details选项,User DSN的界面如下:


点击Configure后:



这里只有key和value选项,不知道是做什么的,没有其他配置编码的地方,那应该从key和value入手了。突然找到这么一篇文章:

http://blog.csdn.net/wuliuqiba123/article/details/7534361

原来key是这么用的,可以配置很多信息,然后设置key为Charset,value为UTF-8:

再次运行R命令,发现问题更大了,R console都被卡住了:


应该是参数写的不对,反复尝试后,歪打正着,原来UTF-8和utf-8都是错的,要改为UTF8或utf8;至于key么,Charset和charset都是可以的:


这下执行R脚本,就对了!



test.txt:

library(RODBC)
channel<-odbcConnect("test",uid="root",pwd="root")
user<-sqlQuery(channel,"select * from test.user")
odbcClose(channel)


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值