PHP中汉字转换原理的分析

首先,分析汉字到十进制的原理。

在GBK编码,汉字是由两个字符,并得到一个字符串的方法如下
复制代码代码如下所示:
不要迷恋哥哥。
strlen(字符串长度=美元美元);
($ i = 0;$ i $ $长度;$ + +){
如果(ORD($字符串{我})> 127){
结果{ } =美元ORD($字符串{我})。。奥德($字符串{ + + $我});
}
}
var_dump($结果);

由于汉字是由两个字组成的,如果该字符的ASCII码值是通过ORD()函数,如果是大于127,就可以确定当前字符是汉字的前半部分,而汉字的另一半当然也是需要的。,这种判定方法是结合具体的开发环境,这种方法显然是不正确的如果有一个ASCII码值大于127的字符。

汉字转换成十进制的原理是用php实现的。通过循环得到了两个汉字字符,那么字符被转换为十进制(ORD)功能。如上:{ 178 } 187不到{ 210 } 170 { 212 } { 195扇193 181 } { 184 } 231兄弟

二、汉字转换为十六的原则分析

使用UltraEdit的开发工具,可以直接查看该汉字的十六个层次,如下

例如,不要迷恋十六个五个字。
从上面的图,你可以知道每个汉字的特点是:不到十六b2bb 2AA风扇c3d4爱c1b5兄弟b8e7

汉字转换为十六进制的原理是用php实现的。首先,我们使用ord()函数来提取每个中文字符的十进制。我们可以看到{ PHP函数部分掌握ORD()和CHR()函数的应用。然后我们用dechex()函数将每个汉字十六个二进制系统。

实例源代码
复制代码代码如下所示:
不要迷恋哥哥。
strlen(字符串长度=美元美元);
返回字符串;
结果=数组();
小数
($ i = 0;$ i $ $长度;$ + +){
如果(ORD($字符串{我})> 127){
结果{ } =美元ORD($字符串{我})。。奥德($字符串{ + + $我});
}
}
var_dump($结果);
十六十六进制
字符串=数组();
foreach($结果达v){
美元=爆炸(
$字符串{ } = dechex(合12月{ 0 })。。dechex(合12月{ 1 });
}
var_dump($字符串);

结果如下


通过上述方法,汉字转换为十六,而输出的结果可以与UltraEdit开发工具获得十六的使用比较。

三、分析汉字中的八进制和八进制原理。

汉字转换为二进制和八进制的实现与上述十六进制转换原理相同,但转换功能不同,结合上面的示例代码,实现以下几点。

汉字被转换成二进制,方法如下
复制代码代码如下所示:
字符串=数组();
foreach($结果达v){
美元=爆炸(
$字符串{ } = decbin(合12月{ 0 })。。Decbin(合12月{ 1 });
}
var_dump($字符串);

结果如下:
汉字被转换成八进制,如下所示
复制代码代码如下所示:
字符串=数组();
foreach($结果达v){
美元=爆炸(
$字符串{ } =煎(合12月{ 0 })。。Decoct(合12月{ 1 });
}

结果如下:
了解PHP的中文字符的十六进制转换的原理,然后通过PHP内置函数(URLDecode)可以将十六进制字符串转换通过正常的中国汉字urldecode的下一期,请注意汉字编码研究系列()和URLEncode()函数的字符编码原理。