【发布时间】:2015-08-17 15:06:56
【问题描述】:
我正在使用 R 中的“RMySQL”库将数据从本地 MySQL 数据库加载到 R:
con <- dbConnect(MySQL(), user="root", password="****", dbname="twitterdata", host="localhost")
dataframe <- dbGetQuery(con, "SELECT id, plaintext, category FROM table")
当我检查数据框时,我看到许多未格式化的字符,例如显示为 ’ 的倾斜撇号 (´)。
经过一番研究,我发现根据this网站,一些特殊字符(包括斜撇号)不是ISO-8859-1标准的一部分,而是标准的一部分Windows-1252 标准。
当我跑步时
Sys.getlocale("LC_CTYPE")
在 R 中,它说:
"German_Austria.1252"
它不是已经说我使用了正确的编码吗?! 在我的数据库(默认字符集:UTF-8)中,撇号编码良好。
我也尝试在 dbConnect 语句中添加一个参数 DBMSencoding="utf-8" 但没有效果。
当我跑步时
Encoding(x)
在 R 中(其中 x 是字符向量 - 一个句子),答案是
"unknown"
现在有人知道解决这个问题吗?
非常感谢!
【问题讨论】:
-
this 有帮助吗? Afaik,
'应该是 iso-8859-x 和 utf-8 的一部分。您可能需要在 R 中正确编码。 -
是的 ' 是 iso-8859-x 的一部分,但不是 ´ 和 `。有趣的是,当我将数据写入文件时,它再次正确显示。
-
那么,您是否按照建议尝试了
iconv(dataframe [, 1], from = "UTF-8", to = "latin1")?无法访问实际数据很难调试... -
天哪!这样可行!我不知道我怎么能忽略这一点!非常感谢!!!
-
好吧,也没用。当我这样做时,一些条目会变成“NA”......
标签: mysql r encoding utf-8 iso-8859-1