复制代码
方法2,
echo rawurlencode(北京欢迎您).'
';
复制代码
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。解码用:rawurldecode
方法3,gbk版:gbk编码中一个汉字由二个字符组成,通过ord()函数获取字符的ascii值如果大于127时,就可以确定当前字符为一个汉字的前半部分,还需要获取汉字的后半部分。当然,这种判断的方法要结合具体的开发环境,如果存在ascii值大于127的单个字符,这种方法判断显然就不正确。
php实现中文字符转十进制的原理就是通过for循环的方法获取一个汉字的二个字符,然后使用ord()函数把各字符转换为十进制。如上分别是:不 [178 187] 要 [210 170] 迷 [195 212] 恋 [193 181] 哥 [184 231]php 实现中文字符转十六进制的原理:首先使用ord()函数取出各个中文字符的十进制,具体可查看[php函数篇掌握ord()与chr()函数应用],然后使用dechex()函数把各个中文字符转化为十六进制。代码:
127){ $result[] = ord($string[$i]).' '.ord($string[++$i]); } } var_dump($result); echo '
';//十六进制 $strings = array(); foreach($result as $v){ $dec = explode( ,$v); $strings[] = dechex($dec[0]). .dechex($dec[1]); } var_dump($strings);
复制代码
utf-8版:
$string = 北京欢迎您!; $length = strlen($string); echo $string; $result = array(); //十进制 for($i=0;$iif(ord($string[$i])>127){ $result[] = ord($string[$i]).' '.ord($string[++$i]).' '.ord($string[++$i]); } } var_dump($result); echo '
';//十六进制 $strings = array(); foreach($result as $v){ $dec = explode( ,$v); $strings[] = dechex($dec[0]). .dechex($dec[1]). .dechex($dec[2]); } var_dump($strings);
复制代码