¿Problemas con acentos y caracteres en JSON?

Estoy desarrollando una aplicación en android que obtiene datos de un JSON que luce asi

[{
"title": "Titulo",
"image": "Imagen url",
"op": "op",
"autor": "Autor",
"fecha": "Noviembre 15, 2016",
"nota":  "ejemplo de nota"
}]

El problema es que en mi aplicación los acentos y las "ñ" aparecen con un carácter raro con un signo de interrogación, y estoy casi seguro que el problema esta en el json, como lo soluciono?

3
задан 16.11.2016, 03:09
5 ответов

Ты должен помещать utf-8 в Content-Type, назвав метод.

Например:

HttpURLConnection httpurlconnection = (HttpURLConnection) urlConnection;
httpurlconnection.setRequestMethod("POST");
httpurlconnection.setRequestProperty("Content-Type", "application/json; charset=utf-8");
httpurlconnection.setDoOutput(true);
httpurlconnection.connect();
1
ответ дан 24.11.2019, 12:35

PodrГ-схвати включать tambiГ©n utf8_encode

  • EJEMPLO1:

  • $text ='OpciГіn';

  • $var = utf8_encode ($text);
  • бросил $var;

или tambiГ©n podrГ-схвати использовать iconv

  • EJEMPLO2:

  • $text ='OpciГіn';

  • $ var=iconv ('МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ-8859-1', 'Американский стандартный код обмена информацией//TRANSLIT', ($text));
  • бросил $var;
1
ответ дан 24.11.2019, 12:35

Ты должен проверять, что твое основание данных конфигурировалось в UTF-8 и также файл, где ты делаешь inserts в твой DB, также конфигурировался таким образом.

, Когда ты пошлешь дату твоего html, или php в твою базу данных используй utf8_encode, и когда ты получишь utf8_decode

0
ответ дан 24.11.2019, 12:35
  • 1
    Я не использую базу данных просто изменяю json, чтобы добавлять или обновлять контент, и файл светит точно, как в примере у него нет ни функций ни ничего. – SpaceSpace 16.11.2016, 03:41
  • 2
    С текстовым редактором, что ты работал, сохраняй файл в utf8 и добавь в твой файл header('Content-Type: application/json; Charset=UTF-8'); – sioesi 16.11.2016, 03:42

Ты можешь использовать эту opciГіn:

json_encode(
$data,
JSON_HEX_AMP |
JSON_HEX_QUOT |
JSON_HEX_APOS |
JSON_UNESCAPED_UNICODE |
JSON_UNESCAPED_SLASHES
);

Это поможет тебе, ты можешь читать она informaciГіn об этом здесь

TambiГ©n я рекомендую тебе использовать эту цель приклей этикетку:

<meta charset="utf-8" />
0
ответ дан 24.11.2019, 12:35

Это важно определил, как ты получаешь стоимость твоего файла.JSON, ты должен определять, что у типа encoding есть файл.

Например, если ты загружаешь файл, созданный с enconding "UTF-8" ты можешь определять:

BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));

Выбор возможно самая простая состоит, в том, чтобы получив твою цепь, которая содержит символы, которые принадлежат другому кодированию, ты кодировал их посредством URLEncoder.encode ():

try {
            String cadenaCodificada = URLEncoder.encode(myCadenaCaracteres, "UTF8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
0
ответ дан 24.11.2019, 12:35