漢字1文字がUTF-8で3バイト、URLエンコードで9バイト
『Real World HTTP』を読んでいたら、以下のようにあった。
漢字1文字がUTF-8で3バイト、URLエンコードで9バイトなります。(P.23)
よくわからなかったので調べた。
つまり、こういうこと
たとえば、「木」という漢字は、UTF-8ではE69CA8
と表される。
これは3バイトになる。
なぜかというと16進数1桁は4ビットで表されるため、E69CA8
は6桁であることから、
4ビット * 6桁 / 8ビット で 3バイトになる。
また、なぜ16進数1桁は4ビットで表せるかというと、4ビットは2の4乗(すなわち16通り)の表現が可能だから。
そして、E69CA8
をパーセントエンコーディングすると%E6%9C%A8
になる。
このとき、1文字は1バイトで表され、%E6%9C%A8は9文字なので、9バイトとなる。
疑問
漢字に限らず、ひらがな・かたかなでも同じく、「UTF-8で3バイト、URLエンコードで9バイト」になるのではないか。
引用元
Author And Source
この問題について(漢字1文字がUTF-8で3バイト、URLエンコードで9バイト), 我々は、より多くの情報をここで見つけました https://qiita.com/aki3061/items/65a381145d83b4ee32c6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .