Разбор Json с символами Юникода - PullRequest
3 голосов
/ 16 мая 2011

У меня есть файл JSON с символами Unicode, и у меня возникают проблемы с его анализом.Я пробовал во Flash CS5, библиотеке JSON, и я пробовал это в http://json.parser.online.fr/, и я всегда получаю «неожиданный токен - сбой eval»

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

Может кто-нибудь, пожалуйста, помогите мне?Спасибо

Ответы [ 6 ]

5 голосов
/ 16 мая 2011

Четвертый RFC:

Текст JSON ДОЛЖЕН быть закодирован в Unicode. Кодировка по умолчанию - UTF-8.

Таким образом, правильно закодированный символ Unicode не должен быть проблемой. Это заставляет меня поверить, что он не правильно закодирован (возможно, он использует латиницу-1 вместо UTF-8). Как вы создали файл? В текстовом редакторе?

3 голосов
/ 16 мая 2011

Возможно, в вашей строке скрыт непонятный символ пробела Unicode.

Этот URL содержит более подробную информацию:

http://timelessrepo.com/json-isnt-a-javascript-subset

1 голос
/ 04 октября 2011

В asp.net можно подумать, что вы используете System.Text.Encoding для преобразования строки типа «Paul \ u0027s» обратно в строку типа «Paul's», но я пытался часами и не нашел ничего, что сработало.

Проблема в том, что жесткое кодирование строки, как показано выше, уже декодирует строку, как вы увидите, если поставить точку останова на нее, так что в конце я написал функцию, которая преобразует Hex27 в Dec39, так что я получил кодировку HTML.и затем расшифровал это.

 string Padding = "000";
                for (int f = 1; f <= 256; f++)
                {
                    string Hex = "\\u" + Padding.Substring(0, 4 - f.ToString().Length) + f;
                    string Dec = "&#" + Int32.Parse(f.ToString(), NumberStyles.HexNumber) + ";";
                    HTML = HTML.Replace(Hex, Dec);
                }
                HTML = System.Web.HttpUtility.HtmlDecode(HTML);

Ужасно как грех, я знаю, но без использования новейшей инфраструктуры (не на сервере ISP) это было лучшее, что я мог сделать, и кто-то должен знать лучшее решение.

0 голосов
/ 30 мая 2017

Если у вас возникли проблемы с кодировкой файла JSON (т. Е. Экранированные коды, такие как \u00fc, отображаются неправильно, независимо от настроек кодирования вашего редактора), сгенерированные Python с помощью json.dump s(): кодирует ASCII по умолчанию и экранирует символы Юникод! См. python json unicode - как мне выполнить вычисление с использованием javascript python: json.dumps не может обработать utf-8? и Почему json.dumps выходит из символы ascii с "\ uxxxx" ).

0 голосов
/ 19 июля 2016

У меня была такая же проблема с файлами json в Твиттере. Я анализировал их в Python с помощью json.loads (твит), но он не удался для половины записей.

Я перешел на Python3, и теперь он работает хорошо.

0 голосов
/ 02 апреля 2013

У меня была такая же проблема, и я просто изменил тип кодировки файлов Mac-Roman / windows-1252 на UTF-8 .. и это сработало

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