无法使用Java解码西班牙文字

时间:2019-03-03 08:29:31

标签: java encoding utf-8 text-decoding

我有以下文字:

Анна Меркулова

借助以下在线解码器https://2cyr.com/decode/?lang=en,我能够将上述字符串解码为正确的字符串:

Анна Меркулова

enter image description here

源编码为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);

返回

Анна Меркулова

我在做什么错以及如何正确转换字符串?

1 个答案:

答案 0 :(得分:3)

您正在尝试为String分配一个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);