一,中文字符转十进制原理分析
GBK编码中一个汉字由二个字符组成,获取汉字字符串的方法如下 @H_502_2@ 代码如下:
502_2@$string = "不要迷恋哥"; @H_502_2@$length = strlen($string); @H_502_2@for($i=0;$i<$length;$i++){ @H_502_2@if(ord($string[$i])>127){ @H_502_2@$result[] = ord($string[$i]).' '.ord($string[++$i]); @H_502_2@} @H_502_2@} @H_502_2@var_dump($result); @H_502_2@
@H_502_2@二,中文字符转十六进制原理分析
使用UltraEdit开发工具可以直接查看中文字符的十六进制,如下图 如,查看“不要迷恋哥”这五个字的十六进制 @H_502_2@
代码如下:
502_2@$string = "不要迷恋哥"; @H_502_2@$length = strlen($string); @H_502_2@echo $string; @H_502_2@$result = array(); @H_502_2@//十进制 @H_502_2@for($i=0;$i<$length;$i++){ @H_502_2@if(ord($string[$i])>127){ @H_502_2@$result[] = ord($string[$i]).' '.ord($string[++$i]); @H_502_2@} @H_502_2@} @H_502_2@var_dump($result); @H_502_2@//十六进制 @H_502_2@$strings = array(); @H_502_2@foreach($result as $v){ @H_502_2@$dec = explode(" ",$v); @H_502_2@$strings[] = dechex($dec[0])." ".dechex($dec[1]); @H_502_2@} @H_502_2@var_dump($strings); @H_502_2@
@H_502_2@结果如下图 @H_502_2@
PHP-dec-hex-string src="http:https://files.jb51.cc/upload/201112/20111206010227183.png">
三,中文字符转二进制和八进制原理分析
实现中文字符转二进制和八进制与上面的十六进制转换原理一样,只是转换的函数不同,结合上面的实例代码,实现如下 中文字符转二进制,方法如下 @H_502_2@ 代码如下:
502_2@$strings = array(); @H_502_2@foreach($result as $v){ @H_502_2@$dec = explode(" ",$v); @H_502_2@$strings[] = decbin($dec[0])." ".decbin($dec[1]); @H_502_2@} @H_502_2@var_dump($strings); @H_502_2@
@H_502_2@结果如下: @H_502_2@ 代码如下:
502_2@$strings = array(); @H_502_2@foreach($result as $v){ @H_502_2@$dec = explode(" ",$v); @H_502_2@$strings[] = decoct($dec[0])." ".decoct($dec[1]); @H_502_2@} @H_502_2@
@H_502_2@结果如下: @H_502_2@