非最短形式UTF-8などのmbstringでUTF-8のチェックが甘いという指摘がでてからかなり立ちますが、PHP 5.4に向けて、対策を考えてみました。 libmbfl 1.3.1 からは、UTF-8の変換や検出時に行われる文字コード範囲検出において整形式であることを確認するチェックを導入します。上記の不正なバイト列は無効な文字として判定され、指定した処理が行われます。libmbfl 1.3.1 は PHP 5.5dev, PHP 5.4beta1 に適用予定です。 Unicoe/UTF-8の定義と背景 Unicodeの規格(最新は昨年10月にリリースされたUnicode 6.0)では、Unicodeは21bit空間(0-0x10FFFF)で定義され、約111万のコードポイントを有しますが、Unicode 6.0では約11万個について文字が登録されています。当初、16bit(UCS-2)