【问题标题】:Read text as UTF-8 encoding以 UTF-8 编码读取文本
【发布时间】: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")吗?
  • 这似乎行得通。您能否详细说明为什么会这样?
  • 你也可以试试enc2utf8iconvreadLines(textConnection(enc2ut8("Z\u00FCrich"), encoding="UTF-8")之类的东西
  • ...但我不知道,只是一个很好的猜测。
  • @Jeroen 仔细阅读了readLines 的编码参数的帮助 - 它基本上没用。

标签: r utf-8 locale


【解决方案1】:

@flodel 的建议确实成功了:

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

但是我一直不清楚为什么需要这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-13
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 2021-06-14
    • 1970-01-01
    相关资源
    最近更新 更多