что это за кодировка (\ u041e \ u0434 \ u0440) и как вернуть ее в нормальное состояние? - PullRequest
0 голосов
/ 12 марта 2012

Скажи, что у меня есть такая строка

"title": "\u041e\u0434\u0440\u0438\u043d\u044f-\u0423\u0440\u0431\u043e\u0432\u0430 ...

Каков наилучший способ вернуть его в нормальное состояние?

Я пытался

byte[] b = stringBuilder.toString().getBytes();
String jstring = new String(b,"UTF-8");

пока не повезло, оно остается прежним.

Спасибо.

Ответы [ 5 ]

10 голосов
/ 12 марта 2012

Это escape-последовательности Unicode. Самый быстрый способ декодировать их (не программно) - просто вставить их в консоль браузера в кавычках:

"\u041e\u0434\u0440\u0438\u043d\u044f-\u0423\u0440\u0431\u043e\u0432\u0430"
> "Одриня-Урбова"

Здесь есть несколько ответов, которые показывают, как их декодировать в Java, например:

2 голосов
/ 12 марта 2012

Это не кодировка UTF-8, это просто обычная строка. В Java \uXXXX является экранированием символа Unicode, которое представляет фактический символ Unicode в данной кодовой точке.

Итак, ваша строка является нормальной, она не закодирована.

1 голос
/ 12 марта 2012

Это уже нормально:

следующий код

String str="\u041e\u0434\u0440\u0438\u043d\u044f-\u0423\u0440\u0431\u043e\u0432\u0430";    
System.out.println(str);

распечатает: Одриня-Урбова

См. JLS-ссылку: Unicode-Escape

1 голос
/ 12 марта 2012

Символы Юникода будут отображаться как символы или что-то в этом роде, когда вы будете отображать их на экране.Я разбил аналогичную ситуацию при разборе данных с помощью MySQL db, используя php, поэтому в файле php я кодирую странные символы tu UTF-8, строку, похожую на ту, что у вас появилась, затем, когда я представлял данные в виде списка, появлялись символыкак следует.

1 голос
/ 12 марта 2012

Не пробовал, но здесь вы можете найти полезный анализатор escape-строки Unicode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...