Php eZend_Json::encode或带有特殊字符的Json_编码

Php eZend_Json::encode或带有特殊字符的Json_编码,php,json,Php,Json,我正在尝试对一个数组进行编码,该数组具有特殊字符,如ñ。当我这样做时,它返回null。我尝试在Zend中使用此选项: Zend_Json::$useBuiltinEncoderDecoder = true: 并且它不返回null,但是,例如,在这个字符串中“thingwithñ”return“thingwith\u00f1” 如果我使用json_encode,例如: <? $string = "something with ñ"; echo "<pre>"; print_r

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

Zend_Json::$useBuiltinEncoderDecoder = true: 
并且它不返回null,但是,例如,在这个字符串中“thingwithñ”return“thingwith\u00f1”

如果我使用json_encode,例如:

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

回报是一样的:

有什么事吗

带有\u00f1的内容

如果我使用utf8_enconde(),则返回此字符\u00c3表示ñ


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

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


对JSON进行解码将理解为与
ñ

相同的意思,您也可以使用JSON_encode()函数对Unicode字符进行编码


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

,我如何将这个字符转换为ñ?这个单词在数据库中,我必须以不同的格式检索它,如数组、二维数组等。任何JSON解码器都会将
\u00f1
转换为诚实的
ñ
字符代码足够丰富,如果您通过
JSON_decode
运行生成的JSON,您将得到
ñ
。我使用了htmlentities($string,NULL,'UTF-8');使用了一个简单的字符串,效果很好。我将尝试更复杂的方法,并在这里发布我的结果。
echo json_encode($yourdata, JSON_UNESCAPED_UNICODE);