從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