R write.csv с кодировкой UTF-16

У меня проблемы с выводом data.frame с использованием write.csv и кодировки символов UTF-16.

Предпосылки: я пытаюсь записать CSV-файл из data.frame для использования в Excel. Excel Mac 2011, похоже, не любит UTF-8 (если я укажу UTF-8 во время импорта текста, символы, отличные от ASCII, будут отображаться как подчеркивания). Меня заставили поверить, что Excel будет доволен кодировкой UTF-16LE.

Вот пример data.frame:

> foo
  a  b
1 á 羽
> Encoding(levels(foo$a))
[1] "UTF-8"
> Encoding(levels(foo$b))
[1] "UTF-8"

Итак, я попытался вывести data.frame, выполнив:

f <- file("foo.csv", encoding="UTF-16LE")
write.csv(foo, f)

Это дает мне Файл ASCII выглядит так:

"","

Если я использую encoding = "UTF-16" , я получаю файл, содержащий только метку порядка байтов 0xFE 0xFF .

Если я использую encoding = "UTF-16BE" , я получаю пустой файл.

Это 64-разрядная версия R 2.12.2 в Mac OS X 10.6.6. Что я делаю не так?

12
задан hippietrail 17 April 2011 в 08:08
поделиться