我從MySQL數據庫讀取通過RJDBC文件.csv和它正確顯示中的R的所有字母(例如,נווהשאנן)。 但是,使用write.csv和出口,即使它fileEncoding =「UTF-8」的輸出看起來像 <U+0436>.<U+043A>. <U+041B><U+043E><U+0437><U+0435><U+043D><U+0435><U+0446>
(在這種情況下,這是不是上面的字符串,但保加利亞之一)保加利亞文,希伯來文,中國等。其他特殊字符,如ã,ç等工作正常。導出UTF-8 BOM至R中
我懷疑這是因爲UTF-8 BOM的,但我沒有在網絡上找到
我的操作系統的解決方案是德國的Windows7。
編輯:我試過
con<-file("file.csv",encoding="UTF-8")
write.csv(x,con,row.names=FALSE)
和(據我所知)相當於write.csv(x, file="file.csv",fileEncoding="UTF-8",row.names=FALSE)
。
你是說當你打開導出的文件時,你會看到「U + 0436」而不是「ж」?如果這樣做不存在BOM問題,那麼Unicode代碼點的問題不會被編碼爲UTF編碼,而是作爲代碼點輸出。也許向我們展示一些代碼如何導出文件? – deceze
我添加了關於如何導出文件的信息。是的,我看到「」而不是「ж」 –
在文件中看到「」是不明確的(甚至可能意味着這些字符實際上是在該文件中內聯的,或者編輯器無法顯示它們)。您可以將「ж」寫入文件中,並告訴我們生成的文件包含的所有字符的十六進制值(在十六進制編輯器中打開它);或者給我們代碼來重現你的問題(當然,我們沒有你的數據庫,所以用樣本數據創建一個向量)。 –