Vì vậy, tôi gặp một số vấn đề với mã hóa ký tự. Khi tôi đặt hai nhân vật sau đây vào một UTF32 mã hóa tập tin văn bản:Sự cố UTF32 và C#
鸕
và sau đó chạy đoạn mã này vào chúng:
System.IO.StreamReader streamReader =
new System.IO.StreamReader("input", System.Text.Encoding.UTF32, false);
System.IO.StreamWriter streamWriter =
new System.IO.StreamWriter("output", false, System.Text.Encoding.UTF32);
streamWriter.Write(streamReader.ReadToEnd());
streamWriter.Close();
streamReader.Close();
tôi nhận được:
鸕
鸕
(cùng nhân vật hai lần, tức là tệp đầu vào! = đầu ra)
Một vài điều có thể hữu ích: Hex cho ký tự đầu tiên:
15 9E 02 00
Và cho phần thứ hai:
15 9E 00 00
Tôi đang sử dụng gedit để tạo ra tập tin văn bản, mono cho C# và tôi đang sử dụng Ubuntu.
Nó cũng không quan trọng nếu tôi chỉ định mã hóa cho tệp đầu vào hoặc đầu ra, nó chỉ không thích nó nếu nó trong mã hóa UTF32. Nó hoạt động nếu tập tin đầu vào được mã hóa UTF-8.
Các tập tin đầu vào là như sau:
FF FE 00 00 15 9E 02 00 0A 00 00 00 15 9E 00 00 0A 00 00 00
Có một lỗi, hoặc là nó chỉ cho tôi?
Cảm ơn!
Encoding của tập tin đầu ra? –
In kết quả của 'streamReader.ReadToEnd()'. – leppie
@ L.B - Thay đổi nó không giúp được – AStupidNoob