6

在辛普森一家的第 12 季第 7 集“The Great Money Caper”中,我注意到几年前俄罗斯宇宙飞船上的“胡言乱语”标志。今天随机,我决定搜索并查看是否有人解码它们但找不到任何结果。

两名俄罗斯人在宇宙飞船上争吵的情节截图。 可以看到墙上有两个显示乱码的迹象。

我怀疑是 KOI8-R 显示为 Latin-1 或 Windows-1252。我可以抓取的图像不是很清晰。

如 Python 3 代码解释器交互所示,我对 mojibake 有两种解释:

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

查看维基百科上的代码图表,我无法弄清楚“<”-like 和“+”-like 符号是什么。我考虑过暴力破解并将其与某种拼写检查字典匹配,但我宁愿先获得一些帮助。

原文或意思还能恢复吗?还是真的是胡言乱语?

(如果有人知道它在说什么,我很感激,但我想看看是否有可能通过一些代码来解决这个问题。)

编辑:一个天真的脚本:

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 回答