【发布时间】:2015-06-09 01:09:06
【问题描述】:
从 MySQL 数据库中获取数据后,我遇到了编码问题。请看附件代码:
mydb = dbConnect(MySQL(), user='root', password='', dbname='', host='localhost')
dbGetQuery(mydb, "SET NAMES 'utf8'")
rs = dbSendQuery(mydb, "SELECT body_prepared FROM articles")
data = fetch(rs, n=-1)
print(data)
internetovĂ˝ televĂzor mĂşdry obyÄŤajnĂ˝
使用命令print(data) 后,我应该看到internetový televízor múdry obyčajný(这是斯洛伐克语),但我看到了internetovĂ˝ televĂzor mĂşdry obyÄŤajnĂ。
我尝试通过 Rgui 和 Rstudio 运行 R,但这没有任何效果,结果在 Rgui 和 Rstudio 中是相同的。
我尝试使用enc2utf8(data[[1]]) 或通过Sys.setlocale("LC_CTYPE", "en_EN.UTF-8") 更改各种类型的编码,但这些命令没有帮助。
我想,Mysql 端有问题,但是我的列设置了正确的 utf-8 编码。
我不知道问题出在哪里。这让我很生气。 你能帮忙解决这个问题吗?我将不胜感激。
有关完整信息,这是我的 sessionInfo:
> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=Slovak_Slovakia.1250 LC_CTYPE=Slovak_Slovakia.1250
[3] LC_MONETARY=Slovak_Slovakia.1250 LC_NUMERIC=C
[5] LC_TIME=Slovak_Slovakia.1250
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RMySQL_0.10.2 DBI_0.3.1
loaded via a namespace (and not attached):
[1] tools_3.1.2
更新
我将dbGetQuery(mydb, "SET NAMES 'utf8'") 重写为dbGetQuery(mydb, "SET NAMES 'cp1250'"),结果突然显示正确。
【问题讨论】:
标签: mysql r utf-8 character-encoding