PHP json_encode json_decode UTF-8

Ну, если вы не хотите сортировать, то вы можете просто сохранить общее количество в переменной с типом более высокой точности, чем отдельные значения (например, использовать двойной для сохранения суммы поплавков или «квадрат») чтобы сохранить сумму удвоений). Это наложит штраф за производительность, но это может быть меньше стоимости сортировки.

23
задан candlejack 19 March 2014 в 02:24
поделиться

9 ответов

Это проблема кодирования. Похоже, в какой-то момент данные представляются в виде ISO-8859-1.

Каждая часть вашего процесса должна быть в кодировке UTF-8.

  • Соединение с базой данных

  • Таблицы базы данных

  • Ваш PHP-файл (если вы используете специальные символы внутри этот файл, как показано в примере выше)

  • Заголовки content-type, которые вы выводите

23
ответ дан Pekka 웃 19 March 2014 в 02:24
поделиться

кодирование и декодирование json utf8:

json_encode($data, JSON_UNESCAPED_UNICODE)

json_decode($json, false, 512, JSON_UNESCAPED_UNICODE)

сила utf8 также может быть полезна: http://pastebin.com/2XKqYU49

38
ответ дан Lukas 19 March 2014 в 02:24
поделиться
  header('Content-Type: application/json; charset=utf-8');
28
ответ дан Ahmet Erkan ÇELİK 19 March 2014 в 02:24
поделиться

Если ваш исходный файл уже utf8, тогда удалите функции utf8_ *. php5 хранит строки в виде массива байтов.

Вы должны добавить метатег для кодирования в html И вы должны добавить заголовок http, который устанавливает transferencoding на utf-8.

<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

и в php

<?php
header('Content-Type: text/html; charset=utf-8');
11
ответ дан Bernd Ott 19 March 2014 в 02:24
поделиться

Попробуйте отправить заголовок кодировки UTF-8:

<?php header ('Content-type: text/html; charset=utf-8'); ?>

И HTML-мета:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
4
ответ дан Coquevas 19 March 2014 в 02:24
поделиться
  1. utf8_decode $j_decoded = utf8_decode(json_decode($j_encoded)); РЕДАКТИРОВАТЬ или, если быть более точным $j_encoded = json_encode($j_encoded); $j_decoded = json_decode($j_encoded);, нет необходимости в en / decoding utf8
  2. <meta charset="utf-8" />
3
ответ дан teemitzitrone 19 March 2014 в 02:24
поделиться

Если вы получаете сообщение «неожиданный символ», вы должны проверить, есть ли спецификация (Маркер порядка байтов, сохраненный в вашем файле utf-8 json. Вы можете удалить первый символ или сохранить, если без спецификации.

0
ответ дан Blox 19 March 2014 в 02:24
поделиться

Работа для меня:)

function jsonEncodeArray( $array ){
    array_walk_recursive( $array, function(&$item) { 
       $item = utf8_encode( $item ); 
    });
    return json_encode( $array );
}
0
ответ дан Douglas Comim 19 March 2014 в 02:24
поделиться

Для меня оба метода

<?php

header('Content-Type: text/html; charset=utf-8');

echo json_encode($YourData, \JSON_UNESCAPED_UNICODE);
0
ответ дан rink.attendant.6 19 March 2014 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: