ホームページ >バックエンド開発 >PHPの問題 >PHP 中国語文字を 10 進コードに変換

PHP 中国語文字を 10 進コードに変換

WBOY
WBOYオリジナル
2023-05-07 11:28:071322ブラウズ

Web開発では、タグ、タイトル、テキストなどに漢字がよく使われます。ただし、一部のアプリケーション シナリオでは、数値計算、データ保存、その他の操作のために漢字を 10 進数コードに変換する必要があります。この記事では、PHP言語を使用して漢字を10進数コードに変換する方法を紹介します。

1. 中国語文字エンコードの概念

中国語文字エンコードとは、中国語の文字をコンピュータが認識できるバイナリ値にマッピングするプロセスを指します。中国語の文字は複数のエンコード方式で表現できます。最も一般的なエンコード方式は Unicode、GBK、GB2312 などです。これらのエンコード方式では、中国語の文字を 16 進値にマップします。

たとえば、Unicode エンコードにおける単語「中」の 16 進値は「4E2D」であり、GBK エンコードにおける 16 進値は「D6D0」です。

2. 漢字を 10 進数に変換する方法

  1. PHP 関数 ord() を使用する

PHP 関数 ord() は特定の文字を返すことができますASCLL コード値。 ASCLL コード値は 0 ~ 255 の整数であるため、漢字を ASCLL コード値に変換し、ASCLL コード値を 10 進形式に変換して出力できます。

サンプルコード:

<?php
$str = '中';
echo ord($str);
?>

実行結果:

20013

注: この方法は、中国語の文字が ASCLL コード テーブルに対応する値を持つ場合にのみ適用されます。

  1. PHP 拡張ライブラリ mbstring を使用する

PHP 拡張ライブラリ mbstring には、さまざまなエンコード方式間で変換できる関数 mb_convert_encoding() が用意されています。中国語の文字を UTF-8 エンコードに変換し、関数 unpack() を使用して UTF-8 エンコードされた文字列を ASCII コードに変換し、最後に関数 implode() を使用して文字列を整数に連結します。

サンプルコード:

<?php
function chinese_encode($str){
    $utf8_str = mb_convert_encoding($str, 'UTF-8', 'auto');
    $ascii_str = unpack('C*', $utf8_str);
    return implode('', $ascii_str);
}
$str = '中';
echo chinese_encode($str); 
?>

実行結果:

20013
  1. カスタム関数

カスタム関数により、漢字が分割されます。各漢字の Unicode エンコードが変換され、最終的にすべての Unicode エンコードが整数出力に結合されます。

サンプルコード:

<?php
function chinese_encode($str){
    $code = '';
    for($i=0; $i<mb_strlen($str, 'UTF-8'); $i++){
        $code .= dechex(ord(mb_substr($str, $i, 1, 'UTF-8')));
    }
    return hexdec($code);
}
$str = '中';
echo chinese_encode($str); 
?>

実行結果:

20013

3. まとめ

この記事では、漢字を 10 進数コードに変換する 3 つの方法をそれぞれ紹介します。 PHP 関数 ord()、PHP 拡張ライブラリ mbstring、およびカスタム関数が使用されます。実際のアプリケーションでは、特定の状況に応じて適切な方法を選択できます。漢字を 10 進コードに変換する操作により、一部のデジタル計算、データ保存、その他の操作を簡単に完了できます。

以上がPHP 中国語文字を 10 進コードに変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。