Ich verwende R 2.15.0 unter Windows 7 64-Bit. Ich möchte Unicode (CJK) Text in eine Datei ausgeben.
Der folgende Code zeigt, wie ein Unicode-Zeichen, das zum Schreiben auf eine UTF-8-Dateiverbindung gesendet wird, nicht wie erwartet funktioniert:
%Vor%Wie die Ausgabe von scan zeigt:
%Vor%Die Datei wurde nicht mit dem UTF-Zeichen selbst geschrieben, sondern mit einer Art ANSI-konformem Fallback. Kann ich es beim ersten Mal richtig machen lassen (dh mit einer Textdatei, die stattdessen "在" enthält), oder kann ich etwas extra Magie anwenden, um die Ausgabe in Unicode zu konvertieren, wobei das richtige Zeichen die Codezeichenfolge ersetzt?
Danke.
[Weitere Informationen: Derselbe Code verhält sich richtig in Cygwin, R 2.14.2, während 2.14.2 auf Win7 ebenfalls defekt ist. Ist das irgendwo an meinem Ende?]
Das Problem ist aufgrund eines R-Windows-Spezialverhaltens (mit der Standard-Systemcodierung / oder mit einigen Systemschreibfunktionen; ich kenne die Besonderheiten aber nicht Verhalten ist eigentlich bekannt)
Um Text UTF8 Kodierung unter Windows zu schreiben, muss man die useBytes=T
Optionen in Funktionen wie writeLines oder readLines verwenden:
Ich habe ein solches Problem mit UTF-8-Strings, die von DB kommen.
Die einzige Möglichkeit, sie korrekt zu speichern, ist das Speichern der Datei im Binärmodus.
%Vor%