【发布时间】:2018-06-05 06:34:56
【问题描述】:
首先让我说我仍然是 R 的初学者。 目前我正在尝试使用 tm 包对土耳其文本进行基本文本挖掘技术。 但是,我遇到了在 R 中显示土耳其语字符的问题。
这就是我所做的:
docs <- VCorpus(DirSource("DIRECTORY", encoding = "UTF-8"), readerControl = list(language = "tur"))
writeLines(as.character(docs), con="documents.txt")
我的想法是,将语言设置为土耳其语并将编码设置为 UTF-8(这是文本文件的原始编码)应该可以显示土耳其语字符 İ、ı、ğ、Ğ、ş 和 Ş可能的。相反,输出将这些字符分别转换为 I、i、g、G、s 和 S,并将其保存为无法显示这些字符的 ANSI 编码。
writeLines(as.character(docs), con="documents.txt", Encoding("UTF-8"))
还保存不带 ANSI 编码字符的文件。
这似乎不仅仅是输出文件的问题。
writeLines(as.character(docs[[1]])
例如,生成的行应为“Okul ve cami açılışları umutları artırdı”,但改为“Okul ve cami açilislari umutlari artirdi”
读完后:UTF-8 file output in R 我还尝试了以下代码:
writeLines(as.character(docs), con="documents.txt", Encoding("UTF-8"), useBytes=T)
这并没有改变结果。
所有这些都在 Windows 7 上使用最新版本的 R 和 RStudio。
有没有办法解决这个问题?我可能遗漏了一些明显的东西,但我们将不胜感激。
【问题讨论】:
-
你能用
write.table(..., fileEncoding = "UTF-8")代替吗? -
感谢您的回复。可悲的是,这会产生相同的结果。示例行现在读取 "\", \"\", \"Okul ve cami açilislari umutlari artirdi\", \"\", \" 使用的确切代码(取自此处:stat.ethz.ch/R-manual/R-devel/library/utils/html/…):
write.table(as.character(docs), file = "documents.txt", append = FALSE, quote = TRUE, sep = " ", eol = "\n", na = "NA", dec = ".", row.names = TRUE, col.names = TRUE, qmethod = c("escape", "double"), fileEncoding = "UTF-8")跨度>