eZend_Json :: encode或带有特殊字符的json_encode

时间:2012-03-30 17:22:18

标签: php json

我正在尝试编码一个具有特殊字符的数组,例如ñ。当我这样做时,它返回null。我试图在Zend中使用这个选项:

Zend_Json::$useBuiltinEncoderDecoder = true: 

并且它不会返回null但是,例如,在这个字符串中“带有ñ的东西”返回“”带有\ u00f1的东西“

如果我用于json_encode,例如:

<?
$string = "something with ñ";
echo "<pre>";
print_r($string);
$encode_json = json_encode($string) ;
print_r($encode_json);
?>

返回是一样的:

与ñ

有关

的东西

如果我使用utf8_enconde(),请将此字符\ u00c3返回ñ。

解决我的问题的一些想法?我需要用ñ保存在数据库中的列表单词,如果我能保存另一个特殊字符就会很棒。

2 个答案:

答案 0 :(得分:2)

您可以使用json_encode()函数编码Unicode字符

echo json_encode($yourdata, JSON_UNESCAPED_UNICODE);

注意:这只适用于PHP 5.4以后

答案 1 :(得分:0)

\u00f1部分很好:它指的是Unicode代码点00F1:“带字母的小字母n。”

解码JSON将解释为与ñ具有相同意义的东西。

相关问题