Sto usando R 3.1.1 su Windows 7 32 bit. Sto avendo un sacco di problemi nel leggere alcuni file di testo su cui voglio eseguire analisi testuali. Secondo Notepad ++, i file sono codificati con "UCS-2 Little Endian". (grepWin, uno strumento il cui nome dice tutto, dice che il file è "Unicode".)R: impossibile leggere i file di testo Unicode anche quando si specifica la codifica
Il problema è che non riesco a leggere il file nemmeno specificando quella codifica. (I personaggi sono degli spagnoli -ñáó- set latino di serie e devono essere maneggiati facilmente con CP1252 o qualcosa di simile.)
> 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" "" "" "" "" ...
Tutte le idee?
Grazie !!
edit: il "UTF-16", "UTF-16" e encondings "UTF-16BE" non riesce simile
' '\ xff \ xfe'' è il' UTF-16LE' codifica del byte order mark (BOM) carattere. La decodifica con UTF-8 dovrebbe fallire in quanto FFh è un byte di avvio non valido, ma non ho familiarità con R. –
Ho avuto lotte simili con la codifica. Ho avuto più successo con 'scan' di quanto non abbia fatto' readLines'. Prova 'scan (" nomefile.txt ", fileEncoding =" UCS-2LE ", sep =" \ n ")' –
Grazie per aver risposto. Penso che dovrei riportarlo come un bug, giusto? 'scan' legge il file (e non capisco la differenza tra i parametri' fileEncoding' e 'encoding'), ma crea altri problemi. In primo luogo, occorrono solo "separatori di un byte" e, se si utilizza un separatore assurdo, esso torna allo spazio come sep. Inoltre, rimuove il \ r \ n che ho bisogno di preservare. E infine, per qualche motivo, "paste" non riesce a concatenare la stringa (restituisce solo il vettore originale). –