R,Windows和外语字符

R一直是一个长期存在的问题: 它可以在Unix上读取非拉丁字符,但是我无法在Windows上读取它们 。 多年来,我已经在几个英文版的Windows机器上复制了这个程序。 我试着改变Windows中的本地化设置和许多其他的无效。 有没有人真的能够读取Windows上的外文文件? 我认为能够读/写/显示unicode是一个程序非常漂亮的function。

环境:

  > Sys.getlocale()
 [1]“LC_COLLATE = English_United States.1252; LC_CTYPE = English_United States.1252; LC_MONETARY = English_United States.1252; LC_NUMERIC = C; LC_TIME = English_United States.1252” 

问题可以复制如下:

在文本编辑器中用俄语或阿拉伯语等语言创build简单的文件,并将其保存为UTF-8,不带BOM。

> test_df <- read.table("test2.txt",header=FALSE, sep=";", quote="",fill=FALSE, encoding="UTF-8",comment.char="",dec=",") ......Warning message: ......In read.table("test2.txt", header = FALSE, sep = ";", quote = "", : ......incomplete final line found by readTableHeader on 'test2.txt' > test_df ...... V1 V2 ......1 <U+043E><U+0439>!yes 9 

使用read.csv()产生相同的结果,减去警告。 我意识到,“”是既可search,可以通过外部程序转换为可读的字符。 但是我想在图表,表格,输出等中看到实际的西里尔语文本,就像我在其他程序中使用的一样。

所以我一直有这个问题几年。 然后有一天早上,我昨天试了下:

 test_df <- read.table("items.txt",header=FALSE, sep=";",quote="",fill=FALSE, encoding="bytes",comment.char="",dec=",") 

encoding="bytes" 工作 ! 我在控制台上看到西里尔文。 然后我必须重新安装R(相同的版本,相同的计算机,相同的一切),解决scheme蒸发。 我从字面上回顾了所有的步骤,而且看起来很神奇。 现在encoding="bytes" ,只是产生相同的垃圾(РєРѕРЅСЊСЏРє) encoding="pizza"会(该参数被忽略)。

read.table还有一个fileEncoding参数。 我不确定它是怎么做的,但它也不行,甚至不能阅读英文文本。

你可以在Windows PC上读取非ASCII文本文件吗? 你究竟是怎么做到的?

Solutions Collecting From Web of "R,Windows和外语字符"