Heim  >  Artikel  >  Backend-Entwicklung  >  php把数据转换成汉字会丢失部分字符和数字的解决办法

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

PHP中文网
PHP中文网Original
2017-03-29 17:26:041882Durchsuche

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)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn