首页  >  文章  >  后端开发  >  乱码-一段转换编码的代码在在线测试的时候正常,写入php文件运行却不正常!

乱码-一段转换编码的代码在在线测试的时候正常,写入php文件运行却不正常!

WBOY
WBOY原创
2016-06-02 11:28:001067浏览

乱码编码php测试

functionencode($c)

{

$len = strlen($c);

$scill='';
$jieguo='';
$a = 0;

while ($a
{

$ud = 0;

if (ord($c{$a}) >=0 && ord($c{$a})
{

$ud = ord($c{$a});

$a = 1;

}

else if (ord ($c{$a}) >=192 && ord($c{$a})
{

$ud = (ord($c{$ a})-192)*64 (ord($c{$a 1})-128);

$a = 2;

}

else if ( ord($c{$a}) >=224 && ord($c{$a})
{

$ud = (ord($c{ $a})-224)*4096 (ord($c{$a 1})-128)*64 (ord($c{$a 2})-128);

$a = 3 ;

}

else if (ord($c{$a}) >=240 && ord($c{$a})
{

$ud = (ord($c{$a})-240)*262144 (ord($c{$a 1})-128)*4096 (ord($c{$a) 2})-128)*64 (ord($c{$a 3})-128);

$a = 4;

}

else if ( ord($c{$a}) >=248 && ord($c{$a})
{

$ud = (ord($c{ $a})-248)*16777216 (ord($c{$a 1})-128)*262144 (ord($c{$a 2})-128)*4096 (ord($c{$a 3 })-128)*64 (ord($c{$a 4})-128);

$a = 5;

}

else if (ord ($c{$a}) >=252 && ord($c{$a})
{

$ud = (ord($c{$ a})-252)*1073741824 (ord($c{$a 1})-128)*16777216 (ord($c{$a 2})-128)*262144 (ord($c{$a 3} )-128)*4096 (ord($c{$a 4})-128)*64 (ord($c{$a 5})-128);

$a = 6;

}

else if (ord($c{$a}) >=254 && ord($c{$a})
{/ /error

$ud = false;

}

$scill = dechex($ud); // 再把结果十瑜伽转换为十六进制

<code>    $jieguo .= "".$scill.";";}  return $jieguo;  </code>

}

echo编码('你好');
?>

一段中文转换为ASCII,再转换为十亮度,并且添加“”后缀添加“;” 的代码。
我在一些在线PHP测试网站里测试输出是正常的。
如在这里测试:
http://www.mcqyy.com/RunCode/php/
是正常的输出的输出的结果但是编码的模式,在html里是可以显示出中文的,如下动图:

乱码-一段转换编码的代码在在线测试的时候正常,写入php文件运行却不正常!

我再架设到php5.2 IIS7的环境下,服务器跟本地都运行测试了。

输出确实是乱码的。
同样将“你好”作为输出错误乱码,或者是单独文件运行的时候显示

乱码-一段转换编码的代码在在线测试的时候正常,写入php文件运行却不正常!请看源文件以及输出结果:
结合到其他文件里运行的时候,"你好"则出乱码为“ ɕ”并且编码为:ɕ

请问是哪里出错了?

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn