为啥有的页面乱码,为什么有的乱码不乱码?有点晕

原创
2016-06-13 12:14:59 979浏览

为什么有的页面乱码,为什么有的乱码不乱码?有点晕
请看这两个页面:http://www.qgren.com/qigong/gongfa/15_30.shtml
摘要出现乱码。

再看这个页面:http://www.qgren.com/qigong/gongfa/15_28.shtml
摘要没有乱码,很正常。

在网站,部分页面正常,部分页面摘要乱码。我有点晕。
程序是dedecms,gbk版本。我网页模板也是gbk。

调用摘要的代码如下:
{dede:field.description runphp='yes'}
if(@me'' )@me = '

摘要:'.@me.'

';
{/dede:field.description}

不知道谁能解我疑惑,为什么会这样?
------解决思路----------------------
无余没、无余欲 後有特殊字符。
檢查一下。
------解决思路----------------------
被加入了空格,删掉即可
观察到 meta 中是一样的乱码,所以就从 meta 中取了
$t = get_meta_tags('http://www.qgren.com/qigong/gongfa/15_30.shtml');
echo '乱码:', $s = $t['description'], PHP_EOL;
echo '还原:', str_replace(' ', '', $s);
乱码:阿难。有犯戒。彼于心解脱、慧解脱如实知。彼于所起犯戒无余灭、无余没、无余欲? 5敝侨耸そ煌恕N宜当巳宋そ帧W苑侨缋础4硕屑洹K芟ぶJ枪省0⒛选D锪咳巳硕 H松瞥锪咳巳硕 H顺锪咳巳恕
还原:阿难。有犯戒。彼于心解脱、慧解脱如实知。彼于所起犯戒无余灭、无余没、无余欲荆当知是人胜进不退。我说彼人为胜进分。自非如来。此二有间。谁能悉知。是故。阿难。莫筹量人人而龋人善筹量人人而玻人筹量人人

------解决思路----------------------
$t = get_meta_tags('http://www.qgren.com/qigong/gongfa/15_30.shtml');
$s = $t['description'];

$n = strpos($s, '欲')+2;
$t = substr($s, $n);
echo bin2hex('尽。当'), PHP_EOL;
echo bin2hex($t), PHP_EOL;

$n = strpos($s, '而')+2;
$t = substr($s, $n);
echo bin2hex('取。人'), PHP_EOL;
echo bin2hex($t), PHP_EOL;

echo str_replace(' ', "\xa1\xa1", $s), PHP_EOL;

echo bin2hex(' '); //再看看全角空格
bea1a1a3b5b1
be20a3b5b1d6aacac7c8cbcaa4bdf8b2bbcdcba1a3ced2cbb5b1cbc8cbceaacaa4bdf8b7d6a1a3d7d4b7c7c8e7c0b4a1a3b4cbb6fed3d0bce4a1a3cbadc4dccfa4d6aaa1a3cac7b9caa1a3b0a2c4d1a1a3c4aab3efc1bfc8cbc8cbb6f8c820a3c8cbc9c6b3efc1bfc8cbc8cbb6f8b220a3c8cbb3efc1bfc8cbc8cba1
c8a1a1a3c8cb
c820a3c8cbc9c6b3efc1bfc8cbc8cbb6f8b220a3c8cbb3efc1bfc8cbc8cba1
阿难。有犯戒。彼于心解脱、慧解脱如实知。彼于所起犯戒无余灭、无余没、无余欲尽。当知是人胜进不退。我说彼人为胜进分。自非如来。此二有间。谁能悉知。是故。阿难。莫筹量人人而取。人善筹量人人而病。人筹量人人?
a1a1


很显然,你在处理文字时做了将全角空格替换成半角空格的处理
这就是问题的根源!
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。