GBK編碼中一個(gè)漢字由二個(gè)字符組成,獲取漢字字符串的方法如下 復(fù)制代碼 代碼如下: $string = "不要迷戀哥"; $length = strlen($string); for($i=0;$i<$length;$i++){ if(ord($string[$i] " /> 亚洲激情在线播放,亚欧美视频,久久中文字幕一区二区三区

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

PHP中實(shí)現(xiàn)中文字符進(jìn)制轉(zhuǎn)換原理分析

一,中文字符轉(zhuǎn)十進(jìn)制原理分析

GBK編碼中一個(gè)漢字由二個(gè)字符組成,獲取漢字字符串的方法如下
復(fù)制代碼 代碼如下:
$string = "不要迷戀哥";
$length = strlen($string);
for($i=0;$i<$length;$i++){
if(ord($string[$i])>127){
$result[] = ord($string[$i]).' '.ord($string[++$i]);
}
}
var_dump($result);

<aphp-ord-dec-number src="/d/file/itjie/phpjishu/2014-10-22/9e31dfaced5fd73313e1243a0a848b3f.png">
由于一個(gè)漢字為兩個(gè)字符組成,通過(guò)ord()函數(shù)獲取字符的ASCII值如果大于127時(shí),就可以確定當(dāng)前字符為一個(gè)漢字的前半部分,還需要獲取漢字的后半部分。當(dāng)然,這種判斷的方法要結(jié)合具體的開(kāi)發(fā)環(huán)境,如果存在ASCII值大于127的單個(gè)字符,這種方法判斷顯然就不正確。

php實(shí)現(xiàn)中文字符轉(zhuǎn)十進(jìn)制的原理就是通過(guò)for循環(huán)的方法獲取一個(gè)漢字的二個(gè)字符,然后使用ord()函數(shù)把各字符轉(zhuǎn)換為十進(jìn)制。如上分別是:不 [178 187] 要 [210 170] 迷 [195 212] 戀 [193 181] 哥 [184 231]

二,中文字符轉(zhuǎn)十六進(jìn)制原理分析

使用UltraEdit開(kāi)發(fā)工具可以直接查看中文字符的十六進(jìn)制,如下圖

如,查看“不要迷戀哥”這五個(gè)字的十六進(jìn)制
ultraedit-16-hex
從上面的圖可以知道各個(gè)漢字對(duì)應(yīng)該的十六進(jìn)制字符分別是:不 B2BB 要 D2AA 迷 C3D4 戀 C1B5 哥 B8E7

php 實(shí)現(xiàn)中文字符轉(zhuǎn)十六進(jìn)制的原理就是首先使用ord()函數(shù)取出各個(gè)中文字符的十進(jìn)制,具體可查看[php函數(shù)篇掌握ord()與chr()函數(shù)應(yīng)用],然后使用dechex()函數(shù)把各個(gè)中文字符轉(zhuǎn)化為十六進(jìn)制

實(shí)例源代碼
復(fù)制代碼 代碼如下:
$string = "不要迷戀哥";
$length = strlen($string);
echo $string;
$result = array();
//十進(jìn)制
for($i=0;$i<$length;$i++){
if(ord($string[$i])>127){
$result[] = ord($string[$i]).' '.ord($string[++$i]);
}
}
var_dump($result);
//十六進(jìn)制
$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = dechex($dec[0])." ".dechex($dec[1]);
}
var_dump($strings);

結(jié)果如下圖

<aphp-dec-hex-string src="/d/file/itjie/phpjishu/2014-10-22/7183503d9a04a474152e37155724ce78.png">

通過(guò)上面的方法實(shí)現(xiàn)把中文字符轉(zhuǎn)換為十六進(jìn)制,輸出結(jié)果可對(duì)比使用UltraEdit開(kāi)發(fā)工具獲取的十六進(jìn)制。

三,中文字符轉(zhuǎn)二進(jìn)制和八進(jìn)制原理分析

實(shí)現(xiàn)中文字符轉(zhuǎn)二進(jìn)制和八進(jìn)制與上面的十六進(jìn)制轉(zhuǎn)換原理一樣,只是轉(zhuǎn)換的函數(shù)不同,結(jié)合上面的實(shí)例代碼,實(shí)現(xiàn)如下

中文字符轉(zhuǎn)二進(jìn)制,方法如下
復(fù)制代碼 代碼如下:
$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = decbin($dec[0])." ".decbin($dec[1]);
}
var_dump($strings);

結(jié)果如下:
<aphp-dec-bin-string src="/d/file/itjie/phpjishu/2014-10-22/ee9fcccf97af0d746dc14cd3548177be.png">
中文字符轉(zhuǎn)八進(jìn)制,方法如下
復(fù)制代碼 代碼如下:
$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = decoct($dec[0])." ".decoct($dec[1]);
}

結(jié)果如下:
<aphp-string-hex src="/d/file/itjie/phpjishu/2014-10-22/4111363f80944a640b4432bcc11a0df5.png">
了解php實(shí)現(xiàn)中文字符進(jìn)制轉(zhuǎn)換原理,再通過(guò)php內(nèi)置函數(shù)urldecode()就可以把十六進(jìn)制的字符串通過(guò)組合轉(zhuǎn)換為正常的中文漢字,請(qǐng)關(guān)注下一期中文字符編碼研究系列之urldecode()與urlencode()函數(shù)字符編碼原理。

php技術(shù)PHP中實(shí)現(xiàn)中文字符進(jìn)制轉(zhuǎn)換原理分析,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 色综合色狠狠天天久久婷婷基地 | 欧美日韩激情一区二区三区 | 在线黄视频 | 国产精品酒店视频 | 亚洲激情都市 | 视频成人永久免费看 | 国产精品拍自在线观看 | 成人欧美日韩视频一区 | 五月月色开心婷婷久久合 | 丁香婷婷开心激情深爱五月 | 色av.com| 国产网红 | 国产精品免费视频网站 | 在线视频第二页 | 2020年国产精品午夜福利在线观看 | 色婷婷在线影院 | 亚洲小说图片视频 | 欧美亚色| 国产精品亚洲视频 | 一级久久久 | 丁香激情六月天 | 一区二区免费视频观看 | 国产香蕉成人综合精品视频 | 免费一区二区三区四区五区 | 亚洲网站视频在线观看 | 亚洲精品视频久久 | 91大神精品长腿在线观看网站 | 激性欧美激情在线播放16页 | 天天色综合社区 | 四虎国产永久在线精品免费观看 | 成人免费看黄网站yyy456 | 激情在线播放免费视频高清 | 精品国产免费第一区二区 | 国产精品日韩欧美久久综合 | 成人综合激情 | 五月综合激情视频在线观看 | 日本国产一区二区三区 | 六月婷婷激情综合 | 国产精品污 | 五月伊人婷婷 | 精品综合久久久久久8888 |