我使用這個代碼:導入從SQL Server俄語字符至R數據框
library(RODBC)
sql3 <- "SELECT TOP 10 Address AS Addr
FROM dbo.Address
Where CountryCode = 'RU'"
con <- odbcDriverConnect('driver={SQL SERVER};server=servername;database=databasename;trusted_connection=true')
df <- as.data.frame(sqlQuery(con,sql3),stringsASFactors=FALSE)
print(df)
將會產生以下結果:
> print(df)
Addr
1 115573, ??????, ???????? ?-?, ?.22?
2 107113 ??????, ????? ???????????, ??? 26
3 142200 ??, ?.????????, ??????????? ?., ?. 1
4 614022 ?????, ?????????????? ?????, ??. ????, 37?
5 109453 ?. ?????? ????????????? ????????, ?. 19, ???. 2
6 129282 ??????, ??. ???????, ?.13-?
7 603000 ?????? ????????, ??????? ????????, 2
8 103164 ??????, ????? ??????? ???????????, ??? 26
9 197341, ?????-?????????, ??-? ???????????, ?.19, ????.2
10 429950, ?????????? ???????, ?. ??????????????, ??. ??????????, 42?
結果應該是俄羅斯的地址的列表。
正如你可以看到,也許,所有的「正規軍」字符越來越細的進口(如數字),但俄文字符都賺不到它。我猜想我需要在達到數據框之前設置字符編碼,但我不知道該怎麼做。另外要說明的是,當從SSMS查詢數據時,出現正確的地址字符。
任何指針將不勝感激,謝謝。
或許,這可能有助於[R中的回報從MySQL擷取UTF-8文本「????」( http://stackoverflow.com/questions/12869778/fetching-utf-8-text-from-mysql-in-r-returns) – Miha
搜索'?sqlQuery'爲 「編碼」 指向'?odbcConnect',其中提到的'DMSencoding'參數。嘗試在連接時將其設置爲「UTF-8」。 – Gregor
它也有樂於助人的音符*「如果有可能設置DBMS或ODBC驅動程序中的字符集R對話則應該是這樣的。例如通信中,MySQL可以設置通過SQL,如設置通信字符SET NAMES'utf8'。「*,它可能適用於或不適用於SQL Server。 – Gregor