繁体   English   中英

使用R,如何使用`readLines`读取文本文件中的汉字

[英]Using R, how to read Chinese characters in text file using `readLines`

我想一次阅读一行文本。 该文件位于在线存储库中。 我正在展示一个小样本。

t.file = "http://md5.mshaffer.com/WSU_STATS419/stackoverflow/chinese/test.txt";
tfile.conn = file(t.file, open="r", encoding="UTF-8"); # read one line at a time, less memory
lines = readLines(tfile.conn); print(lines);
print(lines);    

这不像我期望的那样工作。 输出抛出有关输入文件的警告:

Warning messages:
1: In readLines(tfile.conn) :
  invalid input found on input connection 'http://md5.mshaffer.com/WSU_STATS419/stackoverflow/chinese/test.txt'
2: In readLines(tfile.conn) :
  incomplete final line found on 'http://md5.mshaffer.com/WSU_STATS419/stackoverflow/chinese/test.txt'

请指教。

如何使用readLines读取文本文件中的汉字?

如果文件“损坏”,如何更新它,使其不损坏?

http://md5.mshaffer.com/WSU_STATS419/stackoverflow/chinese/test.txt

Holy Bible, Chinese Union Version (Big5), Textfile 970510
Gen 1:1 起初 神創造天地。
Gen 1:2 地是空虛混沌.淵面黑暗. 神的靈運行在水面上。
Gen 1:3  神說、要有光、就有了光。
Gen 1:4  神看光是好的、就把光暗分開了。

更新

我要强调的是,有zh-cnzh-tw 第一个是简体中文; 后者是繁体中文。

提供的文本文件是zh-tw

在 RStudio 中,按照建议阅读该行后,我得到以下信息:

\xc4@�D�C�q�����f�B�`�P���t�{�P�b�C�\xfc�̡C"

这也显示为:

"挼㸴@愼㸵D愼㹤C戼㹦q愼㹡戼㹡愼㹥愼㸶戼㸴f愼㸱B戼㸱`戼㹢P戼㸲戼㸳戼㸸t愼㹥{愼㸶P愼㸶b愼㸱C愼㹡昼㹣愼㹤̡C"

当放置在数据框中时,显示为:

<U+633C><U+3E34>@<U+613C><U+3E35>D<U+613C><U+3E64>C<U+623C><U+3E66>q<U+613C><U+3E61><U+623C><U+3E61><U+613C><U+3E65><U+613C><U+3E36><U+623C><U+3E34>f<U+613C><U+3E31>B<U+623C><U+3E31>`<U+623C><U+3E62>P<U+623C><U+3E32><U+623C><U+3E33><U+623C><U+3E38>t<U+613C><U+3E65>{<U+613C><U+3E36>P<U+613C><U+3E36>b<U+613C><U+3E31>C<U+613C><U+3E61><U+663C><U+3E63><U+613C><U+3E64><U+0321>C

读入的 TRUE 值是:

願主耶穌的恩惠、常與眾聖徒同在。阿們。

我正在考虑更改locale ,但我只看到一个选项zh 关于如何将汉字读入 R 的任何想法?

我当前的语言环境:

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

在 RStudio->Tools->Global Options->Code->Saving 我将环境设置为 UTF-8。 我得到了 3 个不同版本的结果,它们都是不同的,而且都是错误的!

您可以尝试使用readr::read_lines ,它可以更好地处理编码。

t.file = "http://md5.mshaffer.com/WSU_STATS419/stackoverflow/chinese/test.txt";
readr::read_lines(t.file, n_max = 10)
# [1] "Holy Bible, Chinese Union Version (Big5), Textfile 970510"
# [2] "Gen 1:1 起初 神創造天地。"                               
# [3] "Gen 1:2 地是空虛混沌.淵面黑暗. 神的靈運行在水面上。"   
# [4] "Gen 1:3  神說、要有光、就有了光。"                       
# [5] "Gen 1:4  神看光是好的、就把光暗分開了。" 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM