Когда я использую json_encode для кодирования моих много языковых строк, Он также изменяет специальные символы. Что я должен сделать для хранения их тем же.
Например,
<?
echo json_encode(array('şüğçö'));
Это возвращает что-то как [" \u015f\u00fc\u011f\u00e7\u00f6"]
Но я хочу [" şüğçö"]
В JSON любой символ в строках может быть представлен escape-последовательностью Unicode. Таким образом, "\ u015f \ u00fc \ u011f \ u00e7 \ u00f6"
семантически равно "şüğçö"
.
Хотя этот символ также можно использовать в обычном формате, json_encode
, вероятно, предпочитает escape-последовательности Unicode, чтобы избежать проблем с кодировкой символов.
<?php
print_r(json_decode(json_encode(array('şüğçö'))));
/*
Array
(
[0] => şüğçö
)
*/
Так действительно ли вам нужно держать эти символы незамкованными в JSON?
json_encode ()
не предоставляет никаких опций для выбора кодировки, в которой используется кодировка в версиях до 5.4.