【问题标题】:How to read extra-ASCII characters in R?如何在 R 中读取额外的 ASCII 字符?
【发布时间】:2015-09-17 15:09:21
【问题描述】:

我正在使用以下函数逐行读取输入文本文件:

lines_reader<-function(filename){
    conn<-file(filename,open="r")
    linn<-readLines(conn,encoding="UCS-2LE")
    close(conn)
    return(linn)
}

如果我尝试在 R 环境中绘制这些线,带有重音符号的字母会被处理为“Ô或“è”而不是“à”或“è”。

如何应对?我应该选择什么编码?

这是我的会话和本地系统信息:

> sessionInfo()
R version 3.2.0 (2015-04-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 8 x64 (build 9200)

locale:
[1] LC_COLLATE=Italian_Italy.1252  LC_CTYPE=Italian_Italy.1252   
[3] LC_MONETARY=Italian_Italy.1252 LC_NUMERIC=C                  
[5] LC_TIME=Italian_Italy.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_3.2.0


> Sys.getlocale()
[1] "LC_COLLATE=Italian_Italy.1252;LC_CTYPE=Italian_Italy.1252;LC_MONETARY=Italian_Italy.1252;LC_NUMERIC=C;LC_TIME=Italian_Italy.1252"

【问题讨论】:

  • 可能是语言环境问题。试试Sys.getlocale(),让我们知道输出是什么。
  • 另外,你的操作系统是什么?尝试发布 sessionInfo() 的输出
  • 我根据您的要求编辑了帖子。谢谢。

标签: r utf-8 character-encoding utf-16


【解决方案1】:

如何更改您正在使用的编码:

lines_reader<-function(filename){
    conn<-file(filename,open="r")
    linn<-readLines(conn,encoding="UTF-8")
    close(conn)
    return(linn)
}

【讨论】:

    猜你喜欢
    • 2023-03-06
    • 2020-03-09
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 2015-12-08
    相关资源
    最近更新 更多