maeshimaの日記

メモ書きです

UTF-8の仕様

メモ。UTF-8はASCII文字と互換性を持たせるために可変長。

最初のバイトが

  • 0なら1バイト
  • 11なら2バイト
  • 111なら3バイト
  • 1111なら4バイト

10は中間文字。

はまりどころ?

これだけだと複数のバイトで同じ文字が表現できてしまう。(中間文字が10000000の場合)。これにより、正規表現で文字を抽出するとき等に、抽出したい文字が抽出できなくなってしまう→XSSのようなことが起こりうる。なのでUTF-8は最短のバイト数の文字のみ有効と仕様で決めているらしい。