Невозможно декодировать кириллицу с помощью Java - PullRequest
0 голосов
/ 03 марта 2019

У меня есть следующий текст:

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

С помощью следующего онлайн-декодера 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 голосов
/ 03 марта 2019

Вы пытаетесь присвоить String (s) a 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...