相关疑难解决方法(0)

在R中从MySQL获取UTF-8文本返回"????"

我试图从R中获取MySQL数据库中的UTF-8文本.我在OS X上运行R(通过GUI和命令行尝试),默认语言环境是en_US.UTF-8,没有无论我尝试什么,查询结果显示"?" 对于所有非ASCII字符.

我尝试过设置options(encoding='UTF-8'),DBMSencoding='UTF-8'当通过ODBC连接时,Encoding(res$str) <- 'UTF-8'在获取结果后设置,以及每个的'utf8'变体,都无济于事.从命令行运行查询mysql客户端正确显示结果.

我完全难过了.任何想法为什么它不工作,或我应该尝试的其他事情?

这是一个相当小的测试用例:

$ mysql -u root
mysql> CREATE DATABASE test;
mysql> USE test;
mysql> CREATE TABLE test (str VARCHAR(10)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)

mysql> INSERT INTO test (str) VALUES ('?????');
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+-----------------+
| str             |
+-----------------+
| ?????      |
+-----------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

使用RODBC和RMySQL查询R中的表显示"?????" 对于str列:

> con <- …
Run Code Online (Sandbox Code Playgroud)

mysql odbc r utf-8 character-encoding

28
推荐指数
3
解决办法
1万
查看次数

标签 统计

character-encoding ×1

mysql ×1

odbc ×1

r ×1

utf-8 ×1