在MySQL数据库中,表以utf8编码,但由于某种原因,连接在latin1中.
res <- RMySQL::dbSendQuery(con,"show variables like 'character_set_%'")
dbFetch(res)
Variable_name Value
1 character_set_client latin1
2 character_set_connection latin1
3 character_set_database utf8mb4
4 character_set_filesystem binary
5 character_set_results latin1
6 character_set_server latin1
7 character_set_system utf8
8 character_sets_dir /usr/share/mysql/charsets/
Run Code Online (Sandbox Code Playgroud)
RMySQL::dbGetQuery(con,"show variables like 'character_set_%'")
RMySQL::dbGetQuery(con,"set names utf8")
Run Code Online (Sandbox Code Playgroud)
但我实际上更喜欢使用dplyr::tbl查询数据库.由于dplyr::src_mysql只创建连接,因此可以发送创建表的sql语句.将连接设置设置为使用utf8编码的dplyr方法是什么?
编辑服务器选项文件(位于 Debian 系统上的 /etc/mysql/my.cnf 中)并添加以下选项:
collation-server = utf8_unicode_ci
character-set-server = utf8
skip-character-set-client-handshake
Run Code Online (Sandbox Code Playgroud)
mysql 服务器配置文件也可以使用 mysql-workbench 进行编辑。
进行此更改后,dplyr::tbl获取以 utf-8 编码的字符向量。
| 归档时间: |
|
| 查看次数: |
1752 次 |
| 最近记录: |