我在使用 write.csv
时遇到了问题,希望能够使用 UTF-16 字符编码输出一个数据框。
背景:我正在尝试从数据框中写出一个 CSV 文件,以供 Excel 使用。Excel Mac 2011似乎不喜欢UTF-8(如果我在文本导入期间指定UTF-8,则非ASCII字符将显示为下划线)。我被告知Excel将使用UTF-16LE编码。
以下是示例数据框:
> foo
a b
1 á 羽
> Encoding(levels(foo$a))
[1] "UTF-8"
> Encoding(levels(foo$b))
[1] "UTF-8"
所以我尝试通过以下方式输出数据框:
f <- file("foo.csv", encoding="UTF-16LE")
write.csv(foo, f)
这给了我一个看起来像ASCII文件的东西:"","
如果我使用encoding="UTF-16"
,我得到的文件只包含字节顺序标记0xFE 0xFF
。如果我使用
encoding="UTF-16BE"
,我得到一个空文件。这是在Mac OS X 10.6.6上运行的64位版本的R 2.12.2。 我做错了什么?