1. ホーム
  2. utf-8

[解決済み] UTF-8でエンコードされた文字の最大バイト数を教えてください。

2023-05-01 14:05:26

質問

UTF-8でエンコードされた1文字の最大バイト数は?

私はUTF-8でエンコードされた文字列のバイトを暗号化するつもりです。したがって、UTF-8でエンコードされた文字列の最大バイト数を計算することができる必要があります。

どなたか、UTF-8 でエンコードされた 1 文字の最大バイト数を確認していただけませんか。

どのように解決するのですか?

によると、1文字あたりの最大バイト数は4です。 RFC3629 であり、文字テーブルを U+10FFFF :

UTF-8では、U+0000..U+10FFFFの範囲(UTF-16でアクセス可能な範囲)の文字は、1~4オクテットのシーケンスを使ってエンコードされます。 で利用可能な範囲) の文字は、1~4 オクテットのシーケンスでエンコードされます。

(当初の仕様では、コードポイント過去に最大6バイトの文字コードを許容していました。 U+10FFFF .)

コードが128未満の文字は1バイトしか必要とせず、次の1920文字コードは2バイトしか必要としません。難解な言語を扱うのでなければ、文字数を 4 倍にするのはかなりの過大評価となるでしょう。