【发布时间】:2013-07-04 23:17:41
【问题描述】:
假设我编写了一个函数来解析包含德语的输入流。下面是一个玩具示例。以下适用于我的机器(因为 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 以确保流在任何平台或语言环境上都能正确读取?
【问题讨论】:
-
你试过
readLines(textConnection("Z\u00FCrich", encoding="UTF-8"), encoding="UTF-8")吗? -
这似乎行得通。您能否详细说明为什么会这样?
-
你也可以试试
enc2utf8或iconvreadLines(textConnection(enc2ut8("Z\u00FCrich"), encoding="UTF-8")之类的东西 -
...但我不知道,只是一个很好的猜测。
-
@Jeroen 仔细阅读了
readLines的编码参数的帮助 - 它基本上没用。