ホームページ >バックエンド開発 >PHPチュートリアル >PHP で UTF-8 文字を UCS-2 コードポイントに変換するにはどうすればよいですか?
UTF-8 文字を UCS-2 コード ポイントに変換する
この記事では、UCS-2 コード ポイントを抽出する方法について説明します。 UTF-8 文字列内の文字の数。このプロセスと PHP バージョン 4 または 5 での実装について詳しく説明します。
UTF-8 について
UTF-8 は、文字エンコーディング標準です。 1 ~ 4 バイトを使用して Unicode 文字を表します。特定の文字のバイト数を確認するには、先頭のバイトを調べます:
UCS-2 への変換
UCS-2 は、UTF-16 とも呼ばれ、ほとんどの文字を表現できる文字エンコード形式です。ユニコード文字。 UTF-8 から UCS-2 への変換では、文字ごとのバイト数が次のように考慮されます:
PHP での実装4/5
PHP バージョン 4 または 5 の場合、この変換を実行する関数を実装できます:
<code class="php">function utf8_char_to_ucs2($utf8) { if (!(ord($utf8[0]) & 0x80)) { return ord($utf8[0]); } elseif ((ord($utf8[0]) & 0xE0) == 0xC0) { return ((ord($utf8[0]) & 0x1F) << 6) | (ord($utf8[1]) & 0x3F); } elseif ((ord($utf8[0]) & 0xF0) == 0xE0) { return ((ord($utf8[0]) & 0x0F) << 12) | ((ord($utf8[1]) & 0x3F) << 6) | (ord($utf8[2]) & 0x3F); } else { return null; // Handle invalid characters or characters beyond UCS-2 range } }</code>
使用例
<code class="php">$utf8 = "hello"; for ($i = 0; $i < strlen($utf8); $i++) { $ucs2_codepoint = utf8_char_to_ucs2($utf8[$i]); printf("Code point for '%s': %d\n", $utf8[$i], $ucs2_codepoint); }</code>
これは出力します:
Code point for 'h': 104 Code point for 'e': 101 Code point for 'l': 108 Code point for 'l': 108 Code point for 'o': 111
以上がPHP で UTF-8 文字を UCS-2 コードポイントに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。