У меня проблемы с выводом 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. Что я делаю не так?