ホームページ >よくある問題 >utf-8って何のエンコーディングですか?

utf-8って何のエンコーディングですか?

青灯夜游
青灯夜游オリジナル
2020-10-21 16:25:3787827ブラウズ

UTF-8 は Unicode の可変長文字エンコーディングです。Unicode 標準の任意の文字を表すために使用でき、そのエンコーディングの最初のバイトは依然として ASCII と互換性があるため、オリジナルのソフトウェアはプロセス ASCII 文字は、変更なし、またはわずかな変更のみで引き続き使用できます。

utf-8って何のエンコーディングですか?

UTF-8 (8 ビット、ユニバーサル文字セット/Unicode 変換形式) は、Unicode の可変長文字エンコーディングです。 Unicode 標準の任意の文字を表すために使用でき、そのエンコードの最初のバイトは依然として ASCII と互換性があるため、ASCII 文字を処理する元のソフトウェアは、変更なし、またはわずかな変更のみで引き続き使用できます。したがって、電子メール、Web ページ、およびテキストを保存または送信するその他のアプリケーションでは、このエンコーディングが徐々に推奨されるようになりました。

基本機能

UCS 文字 U 0000 ~ U 007F (ASCII) は、バイト 0x00 ~ 0x7F (ASCIⅡ 互換) としてエンコードされます。これは、7 ビット ASCII 文字のみを含むファイルは、ASCII エンコードでも UTF-8 エンコードでも同じであることを意味します。

0x007F より大きいすべての UCS 文字は複数バイトの文字列としてエンコードされ、各バイトにはフラグ ビットが設定されます。したがって、ASCII バイト (0x00 ~ 0x7F) が他の文字の一部になることは不可能です。非 ASCII 文字を表すマルチバイト文字列の最初のバイトは常に 0xC0 から 0XFD の範囲内にあり、文字に含まれるバイト数を示します。マルチバイト文字列の残りのバイトは、0x80 ~ 0xBF の範囲にあります。これにより、再同期が非常に簡単になり、エンコーディングがボーダレスになり、欠落バイトの影響をほとんど受けなくなります。

UTF-8 でエンコードされた文字の長さは、理論的には最大 6 バイトです。ただし、16 ビット BMP 文字の長さは、最大 3 バイトのみです。Bigendian UCS-4 バイト文字列の配置順序はあらかじめ決められています。バイト0xFE と OxFF は UTF-8 エンコードでは決して使用されません。

エンコードバイト数

UTF-8 は各文字をエンコードするために 1 ~ 4 バイトを使用します:

·1 つの US-ASCIl 文字のみ 1 が必要ですバイトエンコーディング (Unicode 範囲は U 0000 ~ U 007F)。

·ラテン語、ギリシャ語、キリル文字、アルメニア語、ヘブライ語、アラビア語、シリア語、および発音区別符が付いたその他の文字には、2 バイトのエンコードが必要です (Unicode の範囲は U 0080 ~ U 07FF)。

·他の言語の文字 (中国語、日本語、韓国語の文字、東南アジアの文字、中東の文字など) には、最も一般的に使用される文字が含まれており、3 バイトのエンコーディングが使用されます。

·まれに使用されるその他の言語文字では、4 バイト エンコーディングが使用されます。

UTF-8 エンコード ルール:

バイトが 1 つだけの場合、そのバイナリの最上位ビットは 0 です。複数バイトの場合、最初のバイトは開始から始まります。最上位ビットから、値 1 を持つ連続するバイナリ ビットの数によってエンコードされるバイト数が決まり、残りのバイトは 10 から始まります。

以上がutf-8って何のエンコーディングですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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