R schreiben.csv mit UTF-16-Codierung

Ich habe Probleme beim ausgeben von Daten.Rahmen mit write.csv mit UTF-16-Zeichencodierung.

Hintergrund: ich bin versucht zu schreiben, aus einer CSV-Datei von einem Daten.Rahmen für die Verwendung in Excel. Excel Mac 2011 scheint nicht zu mögen UTF-8 (wenn ich angeben, UTF-8 im text importieren, nicht-ASCII-Zeichen als Unterstriche). Ich habe Anlass zu glauben, dass Excel gerne mit UTF-16LE-Codierung.

Hier ist die Beispiel-Daten.Rahmen:

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

Also habe ich versucht, die Ausgabe der Daten.frame-by-doing:

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

Dieser gibt mir eine ASCII-Datei sieht wie folgt aus:

"","

Wenn ich encoding="UTF-16", bekomme ich eine Datei, die enthält nur die byte-order mark 0xFE 0xFF.

Wenn ich encoding="UTF-16BE", erhalte ich eine leere Datei.

Dies ist auf einem 64-bit-version von R-2.12.2 auf Mac OS X 10.6.6. Was mache ich falsch?

  • Für das Protokoll, WTF ist falsch mit Excel und UTF-8? Ich meine, come on, es ist 2011.
Schreibe einen Kommentar