用php實現(xiàn)中文漢字與16進(jìn)制編碼轉(zhuǎn)換的幾個例子
2021-07-25
本文介紹了php漢字和16進(jìn)制碼轉(zhuǎn)換的方法,幾個php漢字碼轉(zhuǎn)換的例子,有需要的朋友可以參考。
使用php實現(xiàn)漢字與十六進(jìn)制的代碼轉(zhuǎn)換。
示例 1,
編碼轉(zhuǎn)換為漢字
function hexdecode($s) {
return preg_replace('/(\w{2})/e',"chr(hexdec('\\1'))",$s);
}
echo hexdecode(hexencode("北京歡迎您!"));
?>
方法二,
echo rawurlencode("北京歡迎您").'
';
返回一個字符串。此字符串中除 -_ 之外的所有非字母數(shù)字字符。將替換為百分號 (%) 后跟兩個十六進(jìn)制數(shù)字。
用于解碼:
方法三,
GBK 版本:
一個gbk編碼的漢字由兩個字符組成,
如果ord()函數(shù)獲取到的字符值大于127php漢字轉(zhuǎn)unicode編碼,可以判斷當(dāng)前字符是漢字的前半部分,需要獲取漢字的后半部分。
當(dāng)然,這種判斷方法要結(jié)合具體的開發(fā)環(huán)境。如果有單個字符的值大于127,這種判斷方法顯然是錯誤的。
php漢字轉(zhuǎn)十進(jìn)制的原理是通過for循環(huán)的方法獲取一個漢字的兩個字符php漢字轉(zhuǎn)unicode編碼,然后使用ord()函數(shù)將每個字符轉(zhuǎn)為十進(jìn)制。
以上為:無【】至【】迷【】愛【】哥哥【】
php實現(xiàn)漢字轉(zhuǎn)十六進(jìn)制的原理:
首先使用ord()函數(shù)提取每個漢字的十進(jìn)制。具體請參考【php函數(shù)章節(jié)掌握ord()和chr()函數(shù)的應(yīng)用】,然后使用()函數(shù)將每個漢字轉(zhuǎn)成十六進(jìn)制。
代碼:
127){
$result[] = ord($string[$i]).' '.ord($string[++$i]);
}
}
var_dump($result);
echo '
';
//十六進(jìn)制
$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = dechex($dec[0])." ".dechex($dec[1]);
}
var_dump($strings);
utf-8 版本:
$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]).' '.ord($string[++$i]);
}
}
var_dump($result);
echo '
';
//十六進(jìn)制
$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = dechex($dec[0])." ".dechex($dec[1])." ".dechex($dec[2]);
}
var_dump($strings);