проблема кодировки символов json - PullRequest
0 голосов
/ 12 марта 2010

Когда я кодирую массив в JSON, я получаю «u00e1» вместо á.

Как я могу решить кодировку символов?

Спасибо

Ответы [ 3 ]

4 голосов
/ 12 марта 2010

Ваши входные данные не являются Unicode. 0xE1 - это устаревшая латиница 1 / ISO-8859 - * / Windows-1252 для Windows. \ u00e1 - это JSON / JavaScript для его кодирования. JSON должен использовать кодировку Unicode.

Решите это, исправив ввод или преобразовав его, используя что-то вроде iconv.

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

Кодировка браузера по умолчанию, вероятно, Unicode UTF-8. Пытаться <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">.

0 голосов
/ 14 августа 2014

Одна проблема может быть, если вы проверяете только ответ (ответ является только текстом, но JSON должен быть объектом).

Сначала необходимо проанализировать текст ответа, чтобы он был объектом javascript (JSON.parse в javascript), а после этого символы станут такими же, как на стороне сервера.

Пример: На сервере в коде php:

$myString = "árvízrtűrő tükörfúrógép";
echo json_encode($myString); //this sends the encoded string via a protocol that maybe    can handle only ascii characters, so the result on the client side is:

На стороне клиента

alert(response); //check the text sent by the php

вывод: "\ u00e1rv \ u00edzrt \ u0171r \ u0051 t \ u00fck \ u00f6rf \ u00far \ u00f3g \ u00e9p"

Создание объекта js из ответа

parsedResponse = JSON.parse(response);
alert(parsedResponse);

вывод: "árvízrtűrő tükörfúrógép"

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