以UTF-8编码方式读取文本

时间:2013-07-07 14:05:48

标签: r utf-8 locale

假设我编写了一个解析包含德语的输入流的函数。下面是一个玩具示例。以下适用于我的机器(因为UTF8是标准的):

readLines(textConnection("Zürich"))
readLines(textConnection("Z\u00FCrich")) #same thing

但是,当UTF-8不是当前的语言环境编码时,我想确保它也能正常工作。例如,在rApache中,默认为ascii。因此我传递了编码参数:

readLines(textConnection("Zürich", encoding="UTF-8"))
readLines(textConnection("Z\u00FCrich", encoding="UTF-8"))

但这实际上会导致输出混乱。为什么是这样?我应该如何调用textConnection以确保在任何平台或区域设置上正确读取流?

1 个答案:

答案 0 :(得分:5)

@flodel的建议确实成功了:

readLines(textConnection("Z\u00FCrich", encoding="UTF-8"), encoding="UTF-8")

然而,我从未明白为何需要这样做。