gpt4 book ai didi

R、Windows 和外语字符

转载 作者:可可西里 更新时间:2023-11-01 10:04:58 26 4
gpt4 key购买 nike

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

环境:

 > 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" 

The problem can be reproduced as follows:

Create simple file in a language like Russian or Arabic in a text editor and save it as UTF-8 w/o 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() 产生相同的结果,但没有警告。我意识到“”既可搜索又可通过外部程序转换为可读字符。但我想在图表、表格、输出等中看到实际的西里尔文字,就像我在我使用过的所有其他程序中一样。

所以我多年来一直遇到这个问题,一直如此。昨天早上,我尝试了以下操作:

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

encoding="bytes" 成功了!我在控制台看到了西里尔字母。然后我不得不重新安装 R(相同的版本,相同的计算机,相同的一切),解决方案消失了。我实际上已经回溯了我所有的步骤,这似乎很神奇。现在 encoding="bytes",只产生与 encoding="pizza" 相同的垃圾 (РєРѕРЅСЊСЏРє)(参数被忽略)。

read.table 还有一个fileEncoding 参数。我不确定它是如何工作的,但它也不起作用,甚至无法阅读英文文本。

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

最佳答案

尝试设置语言环境。例如,

Sys.setlocale(locale = "Russian")

有关详细信息,请参阅 ?Sys.setlocale

关于R、Windows 和外语字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33883030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com