Android の APK の DEX をゴニョゴニョしてたら、DEX の string 領域に格納されている文字列は実は UTF-8 じゃなくてちょっと modify された MUTF-8 (Modified UTF-8) だということが判明して軽くショックを受けています。 Wikipedia の UTF-8 の項によりますと、標準の UTF-8 から以下の 2 つの変更点があるようです。 null 文字 (U+0000) を 0x00 という 1 バイトにエンコードしないで 0xC0, 0x80 というバイト列にエンコードする(UTF-8 のルールに則って 0xC0, 0x80 をデコードすると U+0000 に戻る。shortest possible representation に違反している) U+10000 〜 U+10FFF のコードポイント -- UTF-16 だとサロゲー