我试图从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)