>  기사  >  백엔드 개발  >  php把数据转换成汉字会丢失部分字符和数字的解决办法

php把数据转换成汉字会丢失部分字符和数字的解决办法

PHP中文网
PHP中文网원래의
2017-03-29 17:26:041879검색

php把数据转换成汉字会丢失部分字符和数字的解决办法

$code = 
xml
_to_
js
on($code);

用这个函数转换后,汉字等字符会变成下面这样子的  

u6c5b\u671f\u5c3e\u58f0\u7684\u5230\u6765\uff0c\u6211\u7701\u5f00\u59cb\u8fdb\u5165\u6c34\u5229\u5efa\u8bbe\
u7684\u9ec4\u91d1\u65f6\u671f\u3002\u8bb0\u80058\u670826\u65e5\u83b7\u6089\uff0c\u4eca\u5e74\uff0c\u6211\
u7701\u5c06\u5b8c\u6210\u6c34\u5229\u6295\u8d44\u8fbe154\u4ebf\u5143\uff0c\u91cd\u70b9\u6db5\u76d616\u4e2a\
u65b9\u9762\u51713286\u4e2a\u9879\u76ee\u3002

回复讨论(解决方案)

1.可以试试这种:

$code = preg_replace_c
all
back('/\\\\u([0-9a-f]{4})/i', create_function( '$matches', '
return
 mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");'), $str);

2.

header('Content-type: text/html;charset=utf-8'); 
$code =<<< TXT \u6c5b\u671f\u5c3e\u58f0\u7684\u5230\u6765\uff0c\u6211\u7701\u5f00\u59cb\u8fdb\u5165\u6c34\
u5229\u5efa\u8bbe\u7684\u9ec4\u91d1\u65f6\u671f\u3002\u8bb0\u80058\u670826\u65e5\u83b7\u6089\uff0c\u4eca\
u5e74\uff0c\u6211\u7701\u5c06\u5b8c\u6210\u6c34\u5229\u6295\u8d44\u8fbe154\u4ebf\u5143\uff0c\u91cd\u70b9\
u6db5\u76d616\u4e2a\u65b9\u9762\u51713286\u4e2a\u9879\u76ee\u3002</P>\n\n TXT; 
echo preg_replace("#\\\u([0-9a-f]+)#ie", "iconv(&#39;UCS-2&#39;, &#39;UTF-8&#39;, pack(&#39;H4&#39;, &#39;\\1&#39;))", $code); 
echo preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv(&#39;UCS-2&#39;, &#39;UTF-8&#39;, pack(&#39;H4&#39;, &#39;\\1&#39;))", $code);

汛期尾声的到来,我省开始进入水利建设的黄金时期。记者月日获悉,今年,我省将完成水利投资达亿元,重点涵盖个方面共个项目。ee2bfd64228f824cf6027e0da2815b78
汛期尾声的到来,我省开始进入水利建设的黄金时期。记者8月26日获悉,今年,我省将完成水利投资达154亿元,重点涵盖16个方面共3286个项目。ee2bfd64228f824cf6027e0da2815b78
丢失字符和数字的原因是你吞噬了多余的字符,unicode 只用4位十六进制表示

非常感谢版主,搞定了。。。版主是淫才啊。。。

$code = preg_replace_callback(&#39;/\\\\u([0-9a-f]{4})/i&#39;, 
create_function( &#39;$matches&#39;, &#39;return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");&#39;),
 $str);

以上就是php把数据转换成汉字会丢失部分字符和数字的解决办法的内容,更多相关内容请关注PHP中文网(www.php.cn)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.