无法使用Java解码сyrillic文本

问题描述 投票:1回答:1

我有以下文字:

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

在以下在线解码器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);

回报

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

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

java encoding utf-8 text-decoding
1个回答
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);
© www.soinside.com 2019 - 2024. All rights reserved.