编码问题:如何让控制台打印“ć”而不是“c”?

时间:2017-07-31 12:49:45

标签: r encoding character-encoding character utf

我正在处理所有可能的欧洲语言的数据。 R无法正确识别特殊字符,例如“ć”而不是“c”。

> "ć"
[1] "c" 

我经历了不同的时间并找到了解决方法(read.csv,其他函数有encoding选项),但这并没有解决我的问题,如上所述。我进一步尝试了

> a <- "ć"
> Encoding(a)
[1] "unknown"

并将options的{​​{1}}设置为“UTF-8”但未成功。有没有办法告诉R在实际分配字符之前从控制台读取什么编码?

1 个答案:

答案 0 :(得分:2)

这是由于您设置的区域设置中没有该字符。您可以将语言环境更改为具有该字符的语言环境,但这可能会影响其他字符,如果您随后更改语言环境,则该字符可能会有不同的解释,因此 caveat emptor

Sys.setlocale("LC_CTYPE","Polish")
[1] "Polish_Poland.1250"
"ć"
[1] "ć"

处理此角色的更强大的方法是使用其unicode表示。显然,您必须预先处理数据才能对其进行更改。

"\u0107"
[1] "ć"