本文实例讲述了PHP实现UTF8二进制及明文字符串的转化功能。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<?php /***********本程序由云客编写。有空的时候承接php软件开发 *满足一下新手们的好奇心,看看UTF-8的二进制是什么样子滴 ****************************/ define( "b" , "<br>" ); $a = "FE" ; $a1 = "FF" ; $s = 16; $e = 2; echo $s . "进制的" . $a . "表示为" . $e . "进制是" . base_convert ( $a , $s , $e ) . b; echo $s . "进制的" . $a1 . "表示为" . $e . "进制是" . base_convert ( $a1 , $s , $e ) . b; $str = "计算机rr我们是谁?" ; $strlen = strlen ( $str ); $n = 0; echo $str . '(二进制UTF-8表示):' .b; $str_bin = '' ; while ( $n < $strlen ) { $t = ord( $str [ $n ]); $stra = base_convert ( $t , 10, 2) ; if ( strlen ( $stra )<8) { $stra = "0" . $stra ; } $str_bin .= $stra ; $n ++; } echo $str_bin .b; //已经翻译为二进制了 $str_bin = "1110100010101110101000011110011110101110100101111110011010011100101110100110000101110011111001101000100010010001111001001011101110101100111001101001100010101111111010001011000010000001111011111011110010011111" ; //在此输入二进制,程序编码为明文输出 $chr = '' ; $str = '' ; for ( $i =0; $i < strlen ( $str_bin ); $i ++) { $chr .= $str_bin [ $i ]; if (( $i +1)%8==0) { $str .= chr ( base_convert ( $chr , 2, 10)); $chr =NULL; } } echo $str ; //二进制的UTF8原代码明文 ?> |
运行结果:
1
2
3
4
5
|
16进制的FE表示为2进制是11111110 16进制的FF表示为2进制是11111111 计算机rr我们是谁?(二进制UTF-8表示): 1110100010101110101000011110011110101110100101111110011010011100101110100111001001110010111001101000100010010001111001001011101110101100111001101001100010101111111010001011000010000001111011111011110010011111 计算机 as 我们是谁? |
PS:这里再为大家推荐几款相关在线编码转换工具供大家参考使用:
UTF-8编码转换工具:https://tool.zzvips.com/t/utf-8/
unicode编码转换工具:https://tool.zzvips.com/t/unicode/
在线任意进制转换工具:https://tool.zzvips.com/t/hex/
希望本文所述对大家PHP程序设计有所帮助。
原文链接:http://blog.csdn.net/u011474028/article/details/14519455