LoginSignup
11
11

More than 5 years have passed since last update.

「ワンダーラビットガール」の文字化けを復元する

Last updated at Posted at 2015-12-27

ワンダーラビットガール」はジャンプSQで連載中のエロいマンガである。兄が残した女の子の性癖リストを使って、弟が女の子を落としていく話。書いていて、何を言っているんだ?という気がしててきたけど、そういう話なのでしょうがない。ちなみに、性癖の「性」は性的の「性」ではなく、性質の「性」であって、性的嗜好だけではなくもっと広い意味を持っているらしい

兄の残したリストのうちある女の子の性癖が文字化けしていて、さあ困ったぞ、というのがここ2話のストーリー。困るので復元してみよう。

wonder.jpg
ジャンプSQ 2015年12月号より

まずは、文字を画像から読み取らないと始まらない。最近のIMEならば手書き入力で検索できる。

image

頑張って入力すると次のようになる。

3年A組 緑ノ 柊
性癖
┗髴イ蜃コ迢�‥
繧ュ繧キ繝� 繝ァ繝�繝・

このうちは解釈できなかった文字の代わりに表示されるもので、実際にどのようなバイト列だったかは分からない。参照

漢字、半角カナ、漢字、半角カナ、…と並ぶのは、UTF-8で書かれたテキストをShift_JISと解釈した場合の特徴である。だいたいの日本語はUTF-8では3バイトで表現され、Shift_JISでは漢字は2バイトで半角カナは1バイトだから、このようになる。

文字列をUTF-8でエンコードし、Shift_JISでデコードする処理は、Pythonだと次のようになる。はたぶん1バイトの文字だろうから、とりあえず?としておいた。

# coding: utf-8
x = u"""髴イ蜃コ迢?‥
繧ュ繧キ繝? 繝ァ繝?繝・"""
print (x
    .encode("shift_jis", errors="replace")
    .decode("utf-8", errors="replace")
    .encode("shift_jis", errors="replace"))

最初の行のutf-8はスクリプトの文字コードで、最後の行のshift_jisは画面の文字コードなので、適当に。encodeとdecodeのデフォルトの動作では変換に失敗すると例外を吐いてしまうので、errors="replace"を指定して失敗した文字を別の文字に置き換えて処理を続行させている。実行結果は次の通り。

露出???d
キシ?? ョ??ュ

今月(2015年1月)号で、「この子の性癖って露出癖エキシビジョニズム――!?」という台詞が出てきているので、正しそう。

「癖」が正しく復元されていない。UTF-8の「癖」はE7 99 96でこれをShift_JISで解釈すると最初の1文字はになるはず。文字化けっぽくするために修正が加えられているのかもしれない。2行目のカタカナも謎。今まで、このマンガで性癖以外に何か説明が書いてあることはあっただろうか……? どこかで文字コードを変えれば読めるようになるはずので、次号以降の主人公に期待しよう。

表にまとめた。

Shift_JIS
バイト列 E9 9C B2 E5 87 BA E7 8B ?? 81 64
UTF-8
Shift_JIS
バイト列 E3 82 AD E3 82 B7 E3 83 3F 20 E3 83 A7 E3 83 3F E3 83 A5
UTF-8

実際のファイルを http://sanya.sweetduet.info/wonder_rabbit_girl.txt に置いた。ヘッダでShift_JISを指定している。ブラウザのエンコードをUTF-8にすれば、ここまでの説明のようにある程度読めるはず。

追記

Hi-king
狂(E78B82)ですかね

たしかに。ShiftJISだと0x82だけだと文字にならないので�と辻褄が合う。

Hi-kingさん曰く、カタカナは「(エ)キシビジョニズムではないか?」とのこと。たしかにその通りだと思う。「エキシビジョニズム」をUTF-8で表現すると、

文字 バイト列
E3 82 A8
E3 82 AD
E3 82 B7
E3 83 93
E3 82 B8
E3 83 A7
E3 83 8B
E3 82 BA
E3 83 A0
11
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11