在MySQL數據庫中,表格使用utf8編碼,但出於某種原因,連接使用latin1。如何將dplyr :: tbl連接編碼更改爲utf8?
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/
This page explain how to set the connection's character set to utf8 using RMySQL。
RMySQL::dbGetQuery(con,"show variables like 'character_set_%'")
RMySQL::dbGetQuery(con,"set names utf8")
但其實我更喜歡使用dplyr::tbl
查詢數據庫。由於dplyr::src_mysql
創建的連接只能發送創建表的sql語句。什麼是dplyr的方式來設置使用utf8編碼的連接設置?
你見過這個嗎? http://stackoverflow.com/questions/25934752/utf-8-encoding-with-dplyr-and-sqlite –
@RomanLuštrik我已經看到它謝謝你,我也轉換字符列utf8使用特設解決方案' iconv()'但它是一個黑客,我寧願直接在utf8中讀取字符向量。特別是因爲數據庫已經在utf8中。 –
我感到你的痛苦。編碼對於使用非latin1數據的每個人來說都是一個禍害。 –