React Native: import file CSV với encoding SHIFT-JIS lỗi

Chào mọi người, hiện tại em đang làm react native với chức năng import file csv từ thiết bị và encoding là SHIFT-JIS. Mọi người đã làm qua hay có cách nào đọc data từ file không ạ. Em dùng React native fs thì chỉ hỗ trợ UTF-8.

Tập tin CSV chỉ là định dạng văn bản thôi, bạn đọc dạng văn bản với mã hóa SHIFT-JIS nếu có thư viện hỗ trợ, không thì tự đọc dựa vào đặc tả của SHIFT-JIS.

Ở đây, nếu máy tính hoặc thiết bị hiển thị không hỗ trợ bảng mã SHIFT-JS thì phải tự tham chiếu các kí tự của SHIFT-JS sang Unicode, bao gồm các kí tự Anh, Nhật và Nga, trong phạm vi 2 byte (65535).

Mình đã thấy câu hỏi của bạn trên SO, có lẽ iOS có hỗ trợ hiển thị theo bảng mã SHIFT-JIS.
Thế trên Android nó hiển thị thế nào?
Nếu kiểu như: ÉGÉìÉRÅ[ÉfÉBÉì■■ÇÕìÔǵÇ≠ǻǢ thì React Native đã đọc đúng, còn Android thì không hỗ trợ hiển thị.
Đó là cái khó của bảng mã này, nếu thiết bị hiển thị không hỗ trợ thì nó sẽ in ra như đoạn loằng ngoằng phía trên, bắt buộc phải thêm thao tác tham chiếu các kí tự tương ứng của 2 bảng mã SHIFT-JIS và Unicode.

3 Likes

Dạ em xin cảm ơn câu trả lời giúp em hiểu rõ phần nào về bảng mã. Vấn đề em đang gặp phải là em dùng thư viện Papaparse để đọc file và trả về dữ liệu bên trong file theo bảng mã SHIFT-JIS (thư viện tự làm hết). Trên iOS rất ok nhưng trên Android không hoạt động. Và em đang tìm cách đọc file với bảng mã SHIFT-JIS trên Android trước rồi sau đấy em mới tính đến chuyển đổi qua UTF-8 ạ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?