ホームページ >バックエンド開発 >PHPチュートリアル >UTF-8 文字列内の文字を対応する UCS-2 コード ポイントに変換するにはどうすればよいですか?
この質問は、指定された UTF-8 文字列の UCS-2 コード ポイントの取得についてです。タスクは、言語や文字の複雑さに関係なく、個々の文字を対応する UCS-2 コード ポイントに変換することです。
UCS-2 コード ポイント表現
各 UCS-2 コード ポイントは、コード ポイント値に基づいて 1 ~ 4 バイトで保存されます。
バイト数の決定
文字、最初のバイトを調べます:
C コードの例
UTF-8 文字を UCS-2 コード ポイントに変換するサンプル C コードを次に示します。
<code class="c">wchar_t utf8_char_to_ucs2(const unsigned char *utf8) { if(!(utf8[0] & 0x80)) // 0xxxxxxx return (wchar_t)utf8[0]; else if((utf8[0] & 0xE0) == 0xC0) // 110xxxxx return (wchar_t)(((utf8[0] & 0x1F) << 6) | (utf8[1] & 0x3F)); else if((utf8[0] & 0xF0) == 0xE0) // 1110xxxx return (wchar_t)(((utf8[0] & 0x0F) << 12) | ((utf8[1] & 0x3F) << 6) | (utf8[2] & 0x3F)); else return ERROR; // uh-oh, UCS-2 can't handle code points this high }</code>
代替ソリューション
iconv などの既存のライブラリや、プログラミング言語の特定のライブラリを使用することもできます。
以上がUTF-8 文字列内の文字を対応する UCS-2 コード ポイントに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。