1. 漢字を10進数に変換する原理の分析
GBKエンコードにおける漢字は2つの文字で構成されています
コードをコピーします コードは次のとおりです。次のように:
$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);
1 つの漢字は 2 つの文字で構成されているため、ord() 関数で取得した文字の ASCII 値が 127 より大きい場合、現在の文字は漢字の前半と後半の漢字を取得する必要があります。もちろん、この判断方法は特定の開発環境と組み合わせる必要がありますが、ASCII 値が 127 を超える文字が 1 つある場合、この判断方法は明らかに間違っています。
PHP で漢字を 10 進数に変換する原理は、for ループ メソッドを通じて漢字の 2 文字を取得し、ord() 関数を使用して各文字を 10 進数に変換することです。上記は次のとおりです: いいえ [178 187] 欲しい [210 170] ファン [195 212] 愛 [193 181] 兄弟 [184 231]
第二に、漢字を 16 進数に変換する原理の分析
UltraEdit 開発を使用する下の図のように、漢字の16進数を直接確認できます
例えば、「兄に執着しないでください」という5文字の16進数を確認してください
上の図から、各漢字に対応する 16 進数 文字は次のとおりです: Not B2BB、D2AA、Fan C3D4、Love C1B5、Brother B8E7
PHP 漢字を 16 進数に変換する原理は、まず ord() 関数を使用してそれぞれの 10 進数を取得することです。漢字の詳細については、「PHP 関数編 ord() 関数と chr() 関数の応用をマスターする」を参照し、dechex() 関数を使用して各漢字を 16 進数に変換します
ソースコード例
をコピーします。 code コードは次のとおりです:
$string = "No
$length = strlen($string);
echo $string;
$result = array();
//Decimal
for($i= 0;$i<$length;$i++){
if(ord($string[$i])>127){
$result[] = ord($string[$i]).' $string[++$i]);
}
}
var_dump($result);
//Hex
$strings = array();
foreach($result as $v){
$dec =explode(" ",$v);
$strings[ ] = dechex($dec[0])." ".dechex($dec[1]);
}
var_dump($strings);
結果は次のようになります以下
上記の方法を使用して、漢字を 16 進数に変換し、出力結果を UltraEdit 開発ツールを使用して取得した 16 進数と比較できます。
三、漢字を2進数と8進数に変換する原理の分析
漢字を2進数と8進数に変換する原理は、変換関数が異なることを除いて、上記の16進数変換と同じです。上記のサンプルコードの実装は次のとおりです
漢字をバイナリに変換する方法は次のとおりです
コードをコピーします コードは次のとおりです:
$strings = array(); $result as $v){
$dec =explode(" ",$v) ;
$strings[] = decbin($dec[0])." ".decbin($dec[1]); var_dump($strings);
結果は次のとおりです:
中国語の文字を 8 進数に変換します。方法は次のとおりです
コードをコピーします
コードは次のとおりです:
$strings = array(); foreach($result as $v){ $dec =explode(" ",$v);
$strings [] = decoct($dec[0])." ".decoct($dec[ 1]);
結果は以下の通りです:
PHPの漢字ベース変換の原理を理解した上で、PHP組み込み関数urldecode()を使用して、16進数の文字列を組み合わせて通常の漢字に変換します。次号の中国語文字エンコーディング研究シリーズの urldecode() 関数と urlencode() 関数の原理。
http://www.bkjia.com/PHPjc/324690.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/324690.html技術記事 1. 中国語文字を 10 進数に変換する原理の解析 GBK エンコーディングでは、中国語文字列を取得する方法は次のとおりです。 $string = "しないでください。お兄さんに夢中になってください...