Ich lese eine Datei über RJDBC aus einer MySQL-Datenbank und zeigt alle Buchstaben in R korrekt an (z. B. ננוה שאנן).
Aber auch beim Export mit write.csv und fileEncoding="UTF-8" sieht die Ausgabe so aus
<U+0436>.<U+043A>. <U+041B><U+043E><U+0437><U+0435><U+043D><U+0435><U+0446>
(in diesem Fall ist das nicht die obige Zeichenfolge, sondern eine bulgarische) für Bulgarisch, Hebräisch, Chinesisch und so weiter. Andere Sonderzeichen wie ã, ç usw. funktionieren gut.
Ich vermute, das liegt an UTF-8 BOM, aber ich habe im Internet keine Lösung gefunden
Mein Betriebssystem ist ein deutsches Windows7.
edit: Ich habe es versucht
%Vor% und das (afaik) Äquivalent write.csv(x, file="file.csv",fileEncoding="UTF-8",row.names=FALSE)
.
Die angenommene Antwort hat mir in einer ähnlichen Anwendung nicht geholfen (R 3.1 in Windows, während ich versuchte, die Datei in Excel zu öffnen). Wie auch immer, basierend auf diesem Teil der Datei Dokumentation:
Wenn eine Stückliste erforderlich ist (wird nicht empfohlen), sollte sie beim Schreiben explizit geschrieben werden, z. durch writeChar ("\ ufeff", con, eos = NULL) oder writeBin (as.raw (c (0xef, 0xbb, 0xbf)), binary_con)
Ich habe die folgende Problemumgehung gefunden:
%Vor%Beachten Sie, dass df der data.frame und Dateiname der Pfad zur csv-Datei ist.
Tags und Links r utf-8 export-to-csv byte-order-mark