无法使用 Java 解码西里尔文字
Unable to decode сyrillic text with Java
我有以下文字:
Анна Меркулова
在以下在线解码器的帮助下 https://2cyr.com/decode/?lang=en 我能够将提到的字符串解码为正确的字符串:
Анна Меркулова
源编码为UTF-8,目标编码为WINDOWS-1251
但我仍然无法在 Java 中以编程方式执行此操作:
String utf8String = new String("Анна Меркулова".getBytes(), "UTF-8");
String ansiString = new String(utf8String.getBytes("UTF-8"), "windows-1251");
System.out.println(ansiString);
returns
Анна Меркулова
我做错了什么以及如何正确转换字符串?
您正在尝试将 String
(s) 分配给 Charset
,但您真正需要做的是 提取 bytes
与特定 Charset
final byte[] bytes = "Анна Меркулова".getBytes("UTF-8");
final String utf8String = new String(bytes);
final byte[] bytes1 = utf8String.getBytes("windows-1251");
final String ansiString = new String(bytes1);
顺便说一句,你不需要所有这些
final byte[] bytes = "Анна Меркулова".getBytes("windows-1251");
final String result = new String(bytes);
我有以下文字:
Анна Меркулова
在以下在线解码器的帮助下 https://2cyr.com/decode/?lang=en 我能够将提到的字符串解码为正确的字符串:
Анна Меркулова
源编码为UTF-8,目标编码为WINDOWS-1251
但我仍然无法在 Java 中以编程方式执行此操作:
String utf8String = new String("Анна Меркулова".getBytes(), "UTF-8");
String ansiString = new String(utf8String.getBytes("UTF-8"), "windows-1251");
System.out.println(ansiString);
returns
Анна Меркулова
我做错了什么以及如何正确转换字符串?
您正在尝试将 String
(s) 分配给 Charset
,但您真正需要做的是 提取 bytes
与特定 Charset
final byte[] bytes = "Анна Меркулова".getBytes("UTF-8");
final String utf8String = new String(bytes);
final byte[] bytes1 = utf8String.getBytes("windows-1251");
final String ansiString = new String(bytes1);
顺便说一句,你不需要所有这些
final byte[] bytes = "Анна Меркулова".getBytes("windows-1251");
final String result = new String(bytes);