6

シンプソンズのシーズン 12 エピソード 07「The Great Money Caper」で、私は数年前にロシアの宇宙船に「ちんぷんかんぷんな」標識があることに気付きました。今日、ランダムに、誰かがそれらをデコードしたかどうかを検索して確認することにしましたが、結果は見つかりませんでした.

2 人のロシア人が宇宙船で口論するエピソードのスクリーンショット。 壁にちんぷんかんぷんを示す 2 つの兆候が見られます。

Latin-1 または Windows-1252 として表示される KOI8-R ではないかと思います。私がつかむことができるイメージはあまり明確ではありません。

この Python 3 コード インタープリターの相互作用に示されているように、モジバケには 2 つの解釈があります。

>>> 'Ï‹ÏËÏÁ ¿Ä ÄÏÍ.†.'.encode('windows-1252').decode('koi8_r')
'о▀окоа ©д дом.├.'
>>> 'Ï<ÏËÏÁ ¿Ä ÄÏÍ.×.'.encode('latin1').decode('koi8_r')
'о<окоа ©д дом.в.'

ウィクペディアのコード表を見ても、「<」のような記号と「+」のような記号が何なのかわかりません。総当たり攻撃をして、ある種のスペルチェック辞書と照合することを考えましたが、最初に助けを求めたいと思います。

元のテキストまたは意味を復元できますか? それとも、本当にハズレですか?

(誰かがそれが何を言っているのか知っていればありがたいのですが、何らかのコードでこれを解決できるかどうかを知りたいです。)

編集:素朴なスクリプト:

codec_list = ['ascii', 'big5', 'big5hkscs', 'cp037', 'cp424', 'cp437',
'cp500', 'cp720', 'cp737', 'cp775', 'cp850', 'cp852', 'cp855', 'cp856',
'cp857', 'cp858', 'cp860', 'cp861', 'cp862', 'cp863', 'cp864', 'cp865',
'cp866', 'cp869', 'cp874', 'cp875', 'cp932', 'cp949', 'cp950', 'cp1006',
'cp1026', 'cp1140', 'cp1250', 'cp1251', 'cp1252', 'cp1253', 'cp1254',
'cp1255', 'cp1256', 'cp1257', 'cp1258', 'euc_jp', 'euc_jis_2004',
'euc_jisx0213', 'euc_kr', 'gb2312', 'gbk', 'gb18030', 'hz', 'iso2022_jp',
'iso2022_jp_1', 'iso2022_jp_2', 'iso2022_jp_2004', 'iso2022_jp_3',
'iso2022_jp_ext', 'iso2022_kr', 'latin_1', 'iso8859_2', 'iso8859_3',
'iso8859_4', 'iso8859_5', 'iso8859_6', 'iso8859_7', 'iso8859_8',
'iso8859_9', 'iso8859_10', 'iso8859_13', 'iso8859_14', 'iso8859_15',
'iso8859_16', 'johab', 'koi8_r', 'koi8_u', 'mac_cyrillic', 'mac_greek',
'mac_iceland', 'mac_latin2', 'mac_roman', 'mac_turkish', 'ptcp154',
'shift_jis', 'shift_jis_2004', 'shift_jisx0213', 'utf_32', 'utf_32_be',
'utf_32_le', 'utf_16', 'utf_16_be', 'utf_16_le', 'utf_7', 'utf_8',
'utf_8_sig',]


source_str_list = ['Ï‹ÏËÏÁ ¿Ä ÄÏÍ.†.', 'Ï<ÏËÏÁ ¿Ä ÄÏÍ.×.']

for mangled_codec in codec_list:
    for correct_codec in codec_list:
        decoded_str_list = []

        for s in source_str_list:
            try:
                decoded_str_list.append(s.encode(mangled_codec
                    ).decode(correct_codec))
            except (UnicodeEncodeError, UnicodeDecodeError):
                continue

        if decoded_str_list:
            print(mangled_codec, correct_codec, decoded_str_list)
4

1 に答える 1

0
于 2017-04-05T21:33:57.823 に答える