本文实例讲述了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