【发布时间】:2017-02-12 08:31:09
【问题描述】:
我有一个文本文件,其中包含某种 Unicode 字符的回退转换(尖括号中的 Unicode 代码点)。所以它包含例如foo<U+017E>bar 应该是“foošbar”。 R中是否有一种简单的方法可以将整个文件转换为UTF8并转换这些字符?不幸的是,我在 Windows 上,找不到受支持的 UTF-8 语言环境。
【问题讨论】:
-
UTF8 是一种编码,NOT 是一种语言环境。无论如何,Windows 至少从 2000 年开始就使用 Unicode。 R 包虽然混合了 Unicode 和 ANSI 代码,但依赖于更改本地化设置来处理编码问题。你实际上尝试了什么?不同的包有不同的怪癖。不幸的是,其中一些混淆了语言和编码
-
文件的编码和内容是什么?它是否使用其中一种 Unicode 编码?然后它可以包含
foošbar而没有任何转换问题。您确定问题不是 RStudio 或 RRO 的显示字体吗? -
我的问题是我无法在 Windows 上切换到 UTF-8 友好的语言环境;
Sys.setlocale("LC_ALL", 'en_US.UTF-8')之类的东西不起作用,不知道为什么。所以无论文件的编码是什么,我都有这个问题。 -
Locales 与国家有关,而不是 Unicode 编码。
Sys.setlocale实际上是一种 R 解决方法,它允许 ANSI 编译的包使用 Unicode 数据——只要它们不尝试检查这些值。例如,我从文件中输入或加载foošbar没有问题。一些包虽然无法处理加载的文本,而其他包则没有问题。有些甚至混合了 Unicode 和 ANSI 代码 -
什么是显示问题的代码?替换字符串只是一种解决方法。