Ich verwende R 3.1.1 unter Windows 7 32 Bit. Ich habe viele Probleme, einige Textdateien zu lesen, auf denen ich eine Textanalyse durchführen möchte. Laut Notepad ++ sind die Dateien mit "UCS-2 Little Endian" codiert. (grepWin, ein Werkzeug, dessen Name alles sagt, sagt, dass die Datei "Unicode" ist.)R: Unicode-Textdateien können nicht gelesen werden, selbst wenn die Codierung angegeben wird
Das Problem ist, dass ich nicht scheinen kann, die Datei zu lesen, sogar diese Kodierung verwendend. (Die Zeichen sind der Standard-spanischen lateinischen Satz -ñáó- und sollte so leicht mit CP1252 oder irgendetwas behandelt werden.)
> Sys.getlocale()
[1] "LC_COLLATE=Spanish_Spain.1252;LC_CTYPE=Spanish_Spain.1252;LC_MONETARY=Spanish_Spain.1252;LC_NUMERIC=C;LC_TIME=Spanish_Spain.1252"
> readLines("filename.txt")
[1] "ÿþE" "" "" "" "" ...
> readLines("filename.txt",encoding="UTF-8")
[1] "\xff\xfeE" "" "" "" "" ...
> readLines("filename.txt",encoding="UCS2LE")
[1] "ÿþE" "" "" "" "" "" "" ...
> readLines("filename.txt",encoding="UCS2")
[1] "ÿþE" "" "" "" "" ...
Irgendwelche Ideen?
Danke !!
edit: die "UTF-16", "UTF-16LE" und "UTF-16BE" encondings ähnlich
' '\ xff \ xfe'' ist die' UTF-16LE' Codierung der Bytereihenfolgemarkierung (BOM) Zeichen. Die Decodierung mit UTF-8 sollte fehlschlagen, da FFh ein ungültiges Startbyte ist, aber ich kenne R. nicht. –
Ich hatte ähnliche Probleme mit der Codierung. Hatte mehr Erfolg mit 'scan' als ich' readLines'. Versuchen Sie 'scan (" filename.txt ", fileEncoding =" UCS-2LE ", sep =" \ n ")' –
Danke für die Antwort. Ich denke, ich würde dies als einen Fehler melden, oder? 'Scan' liest die Datei (und ich verstehe nicht den Unterschied zwischen den' fileEncoding' und 'encoding' Parameter), aber es schafft andere Probleme. Zuerst braucht es nur "Ein-Byte-Trennzeichen", und wenn Sie ein absurdes Trennzeichen verwenden, fällt es als sep in den Raum zurück. Außerdem streift es das \ r \ n, das ich bewahren muss. Und aus irgendeinem Grund kann 'paste' die Zeichenfolge nicht verketten (sie gibt nur den ursprünglichen Vektor zurück). –