从MySQL数据库中获取数据后,我遇到了编码问题。请参阅附代码:R控制台中错误的字符编码
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ý
(这是斯洛伐克languague),但我看到internetovĂ˝ televĂzor mĂşdry obyÄŤajnĂ
。
我试图通过Rgui和Rstudio运行R,但没有任何效果,并且在Rgui和Rstudio中结果相同。 我试图使用enc2utf8(data[[1]])
或更改Sys.setlocale("LC_CTYPE", "en_EN.UTF-8")
编码各种类型,但这些命令werent有帮助。 我想,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
UPDATE
我改写dbGetQuery(mydb, "SET NAMES 'utf8'")
到dbGetQuery(mydb, "SET NAMES 'cp1250'")
,突然它表现出正确的结果。
字符集为UTF-8。我将'dbGetQuery(mydb,“SET NAMES'utf8'”)重写为'dbGetQuery(mydb,“SET NAMES'cp1250'”)'现在'print(data)'显示正确的结果。万分感谢。 – peteruherek 2015-04-03 23:33:50