PHP は、Web 開発の分野で広く使用されている人気のあるプログラミング言語です。開発プロセス中、保存、送信、処理を容易にするために、中国語のテキストを 16 進数に変換する必要がある場合があります。この記事では、PHPを使って中国語を16進数に変換する機能を実現する方法を紹介します。
1. 16 進数とは
コンピュータでは、数値は 2 進数 (0 と 1 で構成される) の形式で保存および計算されます。 16 進数は 2 進数の表現であり、16 文字 (0 ~ 9、A ~ F) を使用して 16 個の数字 (0 ~ 15) を表します。
たとえば、10 進数の 10 に対応する 16 進数は A、10 進数の 255 に対応する 16 進数は FF です。
2. 中国語を 16 進数に変換する
PHP では、bin2hex() 関数を使用して文字列を 16 進数に変換できます。ただし、この関数が 16 進数に変換できるのは英語の文字、数字、一部の記号のみであり、中国語を直接 16 進数に変換することはできません。
この問題を解決するには、UTF-8 エンコーディングのバイト単位の変換方式を使用して、中国語の文字を 1 つずつ 16 進表現に変換します。具体的な方法は次のとおりです。
$string = "中国語文字列";
$hex = '';
for ($i = 0; $i < ; mb_strlen ($string); $i ) {
$hex .= sprintf("%02X", ord(mb_substr($string, $i, 1)));
}
echo $hex; // 出力 "E4B8ADE69687E5AD97E7ACACE4B8B2E7A792E7958C"
?>
上記のコードでは、まず中国語の文字を含む文字列を取得するを定義し、次にループを使用して UTF-8 でエンコードされたバイト シーケンスをバイトごとに取得し、sprintf() 関数を使用して各バイトを 2 桁の 16 進表現に変換します。最後に、すべての 16 進表現を結合することにより、中国語文字列の 16 進表現が得られます。
3. 16 進数を中国語に変換する
同様に、hex2bin() 関数を使用して 16 進数を文字列に変換することもできます。ただし、中国語の文字は通常、UTF-8 エンコーディングの形式で保存および送信されるため、16 進数を中国語の文字に変換する場合は、まず 16 進数を UTF-8 でエンコードされたバイト シーケンスに変換してから、mb_convert_encoding() 関数を使用する必要があります。バイトのシーケンスを文字列に変換します。
具体的な方法は次のとおりです。
$hex = "E4B8ADE69687E5AD97E7ACACE4B8B2E7A792E7958C"; } 上記のコードでは、最初に 16 進文字列を定義し、次にループを使用して各バイト 16 バイトを取得します。 1 つの Base 表現で変換し、対応する ASCII コードに変換してから、chr() 関数を使用して ASCII コードを文字に変換します。通常、中国語の文字は GBK エンコードで保存および送信されるため、バイト シーケンスを文字列に変換する場合は、ターゲット エンコードを UTF-8 に設定する必要があることに注意してください。 4. 概要 この記事では、PHP を使用して中国語を 16 進数に変換し、16 進数を中国語に変換する方法を紹介します。 16 進数を中国語に変換する場合は、まず 16 進数を UTF-8 でエンコードされたバイト シーケンスに変換し、UTF-8 エンコードでデコードする必要があることに注意してください。この記事が、開発者が中国語のテキストをより便利に処理するのに役立つことを願っています。 以上がPHPで中国語を16進数に変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
$string = '';
for ($i = 0; $ i $string .= chr(hexdec(substr($hex, $i, 2)));
$string = mb_convert_encoding($string, "UTF-8", "GBK");
echo $ string; // 出力 "中国語の文字列"
?>