Tôi đang sử dụng R 3.1.1 trên Windows 7 32bits. Tôi đang gặp rất nhiều vấn đề khi đọc một số tệp văn bản mà tôi muốn thực hiện phân tích văn bản. Theo Notepad ++, các tệp được mã hóa với "UCS-2 Little Endian". (grepWin, một công cụ có tên nói lên tất cả, cho biết tệp là "Unicode".)R: không thể đọc các tệp văn bản unicode ngay cả khi chỉ định mã hóa
Vấn đề là tôi không thể đọc tệp ngay cả khi chỉ định mã hóa đó. (Các nhân vật được các tiêu chuẩn Tây Ban Nha thiết lập -ñáó- Latinh và cần được xử lý một cách dễ dàng với CP1252 hoặc bất cứ điều gì như thế.)
> 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" "" "" "" "" ...
Bất kỳ ý tưởng?
Cảm ơn !!
chỉnh sửa là: "UTF-16", "UTF-16LE" và "UTF-16BE" encondings thất bại tương tự
' '\ xff \ xfe'' là' UTF-16LE' mã hóa của nhãn thứ tự byte (BOM) tính cách. Giải mã với UTF-8 sẽ thất bại vì FFh là một byte bắt đầu không hợp lệ, nhưng tôi không quen thuộc với R. –
Tôi đã có những cuộc đấu tranh tương tự với mã hóa. Đã thành công hơn với 'scan' hơn là tôi đã đọc' readLines'. Hãy thử 'scan (" filename.txt ", fileEncoding =" UCS-2LE ", sep =" \ n ")' –
Cảm ơn bạn đã trả lời. Tôi nghĩ tôi nên báo cáo lỗi này, đúng không? 'scan' không đọc tệp (và tôi không hiểu sự khác biệt giữa thông số' fileEncoding' và 'encoding'), nhưng nó tạo ra các sự cố khác. Đầu tiên, nó chỉ mất "một dấu phân cách byte", và nếu bạn sử dụng một dấu phân cách vô lý nó rơi trở lại không gian như một sep. Ngoài ra, nó dải \ r \ n mà tôi cần phải bảo tồn. Và cuối cùng, vì một số lý do 'paste' không ghép nối chuỗi (nó chỉ trả về vectơ gốc). –