Làm thế nào để chuyển đổi văn bản từ utf8/CP1251 (cửa sổ Cyrillic) để DOS Cyrillic (cp866)Java char bộ mã hóa vấn đề (từ UTF8 để cp866)
tôi thấy ví dụ này:
Charset fromCharset = Charset.forName("utf8");
Charset toCharset = Charset.forName("cp866");
String text1 = "Николай"; // my name in bulgarian
String text2 = "Nikolay"; // my name in english
System.out.println("TEXT1 :[" + toCharset.decode(fromCharset.encode(text1)).toString() + "]");
System.out.println("TEXT2 :[" + toCharset.decode(fromCharset.encode(text2)).toString() + "]");
Và đầu vào là:
TEXT1 :[╨Э╨╕╨║╨╛╨╗╨░╨╣] // WRONG
TEXT2 :[Nikolay] // CORRECT
Vấn đề ở đâu?
Bạn mong đợi điều gì? Bạn đang mã hóa "Николай" bằng cách sử dụng UTF-8, sau đó giải mã các byte được mã hóa bằng cách sử dụng Cp866. Sản lượng có vẻ hợp lý với tôi, nhưng bạn rõ ràng mong đợi một số phép thuật khác xảy ra. – jarnbjo