json_encode/декодировать проблемы с символами

90
13

У меня возникли проблемы с функциями json_encode/decode, когда я храню строку в таблице DB DB. Проблема в шведских символах, таких как ÅÄÖ. Если есть что-то вроде

$my_arr = array('Räksmörgås');
$json = json_encode($my_arr):
print_r(json_decode($json));

Он работает нормально, проблема в том, что, как я уже сказал, когда я храню jsonstring в db, а затем собираю их. Таблица (весь db) имеет кодировку 'utf8_general_ci'. Я тоже пробовал uft8_unicode_ci, с тем же результатом, что выход будет " Ru00e4ksmu00f6rgu00e5s ". Столбец, в котором я храню этот валус, является "ТЕКСТ".

Что я делаю не так?

Редактировать, я забыл упомянуть, что это плагин для wordpress, и я использую $wpdb-> prepare() и $wpdb-> query().

спросил(а) 2013-03-18T13:34:00+04:00 8 лет, 3 месяца назад
1
Решение
64

Где-то в вашем коде вы сбрасываете слэши.

// text: Räksmörgås
// json_encode(): R\u00e4ksm\u00f6rg\u00e5s
// your output: Ru00e4ksmu00f6rgu00e5s

ответил(а) 2013-03-18T13:42:00+04:00 8 лет, 3 месяца назад
45

Попробуйте сохранить результат в поле BLOB а не в поле TEXT. Что вы использовали для хранения данных? PDO? Мысли? Mysql?

ответил(а) 2013-03-18T13:43:00+04:00 8 лет, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема