溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php中文字符如何轉(zhuǎn)十六進(jìn)制

發(fā)布時(shí)間:2022-01-13 09:51:07 來(lái)源:億速云 閱讀:239 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)php中文字符如何轉(zhuǎn)十六進(jìn)制,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

php中文字符轉(zhuǎn)十六進(jìn)制的方法:1、創(chuàng)建一個(gè)PHP示例文件;2、通過(guò)“function hexencode($s){return preg_replace('/(.)/es',"str_pad(...)}”方法將漢字轉(zhuǎn)換為16進(jìn)制編碼即可。

php中文字符如何轉(zhuǎn)十六進(jìn)制

本文操作環(huán)境:windows7系統(tǒng)、PHP7.1版、DELL G3電腦

php中文漢字與16進(jìn)制編碼轉(zhuǎn)換三種方法

用php實(shí)現(xiàn)中文漢字與16進(jìn)制間的編碼轉(zhuǎn)換。

例1,

<?php
//漢字轉(zhuǎn)換為16進(jìn)制編碼
function hexencode($s) {
    return preg_replace('/(.)/es',"str_pad(dechex(ord('\\1')),2,'0',str_pad_left)",$s);    
}
//16進(jìn)制編碼轉(zhuǎn)換為漢字
function hexdecode($s) {
    return preg_replace('/(\w{2})/e',"chr(hexdec('\\1'))",$s);
}
echo hexdecode(hexencode("北京歡迎您!"));
?>

方法2,

echo rawurlencode("北京歡迎您").'<br>';

返回字符串,此字符串中除了 -_. 之外的所有非字母數(shù)字字符都將被替換成百分號(hào)(%)后跟兩位十六進(jìn)制數(shù)。

解碼用:rawurldecode

方法3,

gbk版:

gbk編碼中一個(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]

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)制。

代碼:

<?php
$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); 
echo '<br>';
//十六進(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 '<br>';
//十六進(jìn)制 
$strings = array(); 
foreach($result as $v){ 
$dec = explode(" ",$v); 
$strings[] = dechex($dec[0])." ".dechex($dec[1])." ".dechex($dec[2]); 
} 
var_dump($strings);

關(guān)于“php中文字符如何轉(zhuǎn)十六進(jìn)制”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI