Tôi đang đọc tệp qua RJDBC từ cơ sở dữ liệu MySQL và nó hiển thị chính xác tất cả các chữ cái trong R (ví dụ: נווה שאנן). Tuy nhiên, ngay cả khi xuất khẩu bằng cách sử dụng write.csv và fileEncoding = "UTF-8", kết quả đầu ra trông giống như <U+0436>.<U+043A>. <U+041B><U+043E><U+0437><U+0435><U+043D><U+0435><U+0446>
(trong trường hợp này không phải là chuỗi ở trên mà là tiếng Bungari) cho tiếng Bungari, tiếng Do Thái, tiếng Trung và vân vân. Các nhân vật đặc biệt khác như ã, ç vv làm việc tốt.Xuất UTF-8 BOM sang .csv trong R
Tôi nghi ngờ điều này là vì UTF-8 BOM nhưng tôi đã không tìm thấy một giải pháp trên mạng
OS của tôi là một Windows7 Đức.
chỉnh sửa: Tôi cố gắng
con<-file("file.csv",encoding="UTF-8")
write.csv(x,con,row.names=FALSE)
và (afaik) tương đương write.csv(x, file="file.csv",fileEncoding="UTF-8",row.names=FALSE)
.
Bạn có nói rằng khi bạn mở tệp đã xuất, bạn thấy "U + 0436" thay vì "ж"? Nếu đó không phải là vấn đề BOM, chỉ là vấn đề về các điểm mã Unicode không được mã hóa thành mã hóa UTF, nhưng đầu ra là các điểm mã. Có thể chỉ cho chúng tôi một số mã như thế nào chính xác bạn đang xuất khẩu các tập tin? – deceze
Tôi đã thêm thông tin về cách tôi xuất tệp. Và có, tôi thấy "" thay vì "ж" –
Xem "" trong tệp không rõ ràng (thậm chí có thể có nghĩa là các ký tự đó thực sự được gạch chân trong tệp đó hoặc trình chỉnh sửa của bạn không thể hiển thị chúng). Bạn có thể viết cho chúng tôi "ж" trong một tệp và cho chúng tôi biết giá trị hex của tất cả các ký tự mà tệp được tạo chứa (mở nó trong trình chỉnh sửa hex); HOẶC cung cấp cho chúng tôi mã để tạo lại vấn đề của bạn (tất nhiên chúng tôi không có DB của bạn, vì vậy hãy tạo một vectơ với dữ liệu mẫu). –