PHP的json_encode中的西里尔字符
发布时间:2020-12-13 17:35:04 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试使用php的函数json_encode将西里尔文UTF-8数组编码为 JSON字符串.示例代码如下所示: ?php $arr = array( 'едно' = 'първи','две' = 'втори' ); $str = json_encode($arr); echo $str;? 它工作正常,但脚本的结果表示为: {"u043
我正在尝试使用php的函数json_encode将西里尔文UTF-8数组编码为
JSON字符串.示例代码如下所示:
<?php $arr = array( 'едно' => 'първи','две' => 'втори' ); $str = json_encode($arr); echo $str; ?> 它工作正常,但脚本的结果表示为: {"u0435u0434u043du043e":"u043fu044au0440u0432u0438","u0434u0432u0435":"u0432u0442u043eu0440u0438"} 每个西里尔字符为6个字符.有没有办法获取键/值对而不是编码的原始字符?
我在Zend框架的代码中发现了这一点:
http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Json/Decoder.php 看看函数decodeUnicodeString(第474行): /** * Decode Unicode Characters from u0000 ASCII syntax. * * This algorithm was originally developed for the * Solar Framework by Paul M. Jones * * @link http://solarphp.com/ * @link http://svn.solarphp.com/core/trunk/Solar/Json.php * @param string $value * @return string */ public static function decodeUnicodeString($chrs) 它是静态的,您可以轻松地提取它 – 只需更换行: 490: $utf8 .= self::_utf162utf8($utf16); 有: 490: $utf8 .= mb_convert_encoding($utf16,'UTF-8','UTF-16'); 不是一个理想的解决办法,但为我做了这个工作:o) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |