2013-05-06 2 views
1
<?php 
header("Content-type: text/csv; charset=GB2312"); 
$arr = array('丂','亐'); 
echo json_encode($arr); 
?> 

Вместо предоставления китайского символьного массива json_encode возвращает нулевые значения.PHP json_encode не работает с набором символов на китайском языке

+2

Вы проверили любой из ссылок справа на этой странице? –

+0

да я сделал, но не нашел свой ответ –

+0

Для меня ваш пример отлично работает. Поэтому, я думаю, вы смешиваете кодировки здесь. Убедитесь, что вы вводите символы, используя стандартную кодировку utf-8. Все остальное приведет к проблемам. – arkascha

ответ

3

json_encode работает только с закодированными строками UTF-8. Если вам нужно создать корректный json из китайской кодированной строки, вам нужно сначала перекодировать/преобразовать его в UTF-8. Тогда json_encode будет работать как задокументированный.

Использование iconv для преобразования кодировки, вы можете также использовать mb_convert_encoding

$str = iconv("GB2312", "UTF-8", $str); 
+0

, если я конвертирую его в utf-8, тогда я потеряю иероглиф –

+0

Не могли бы вы объяснить ваш ответ на примере –

+0

@Wasim См. Отредактированный ответ для преобразования кодировки. –

Смежные вопросы