---------------------------
ÆGÆâ°[
---------------------------
ÆfÆBÆXÆvÆÅÆCÆâ[ÆhâªÃâèâÃ
â«âÃâ¹âñ.
---------------------------
OK
---------------------------
我从中得到这个清晰的错误信息
Shooter's Solitude system 4
在我喂它之后
this version of d3drm.dll
(叹气)
为了您的方便,这里有一个Hexdump:
00000000 c6 92 66 c6 92 42 c6 92 58 c6 92 76 c6 92 c5 92 |..f..B..X..v....|
00000010 c6 92 43 c6 92 e2 80 9a c2 81 5b c6 92 68 e2 80 |..C.......[..h..|
00000020 9a c2 aa c2 90 c3 9d e2 80 99 c3 a8 e2 80 9a c3 |................|
00000030 85 e2 80 9a c2 ab e2 80 9a c3 9c e2 80 9a c2 b9 |................|
00000040 e2 80 9a c3 b1 2e 0a |.......|
00000047
如何将其转换为一致的错误消息——也就是说,
您将如何为该错误消息找到正确的编码/解编码对?
这是我试过的。
我想问题是开发人员使用了错误的编码设置(考虑到游戏的年龄,这是为WinXP开发的,这是意料之中的)。通过观察它,我们可以推测消息是以某种多字节编码的。(
Æf
ÆB
ÆX
Æv
ÆÅ
)
但是,每个组似乎由三个字节(变量?)。这排除了通常的嫌疑犯:
>>> wat = "ÆfÆBÆXÆvÆÅÆCÆâ[ÆhâªÃâèâÃ
â«âÃâ¹âñ. "
>>> wat.encode("UTF-8").decode("UTF-32")
UnicodeDecodeError: 'utf32' codec cannot decode bytes in position 0-3:
codepoint not in range(0x110000)
>>> wat.encode("UTF-8").decode("UTF-16")
UnicodeDecodeError: 'utf16' codec cannot decode bytes in position 70-70:
truncated data
>>> wat.encode("UTF-8")[:-1].decode("UTF-16")
'éì¦äéìçéé
éì\ue292éªèìæ¢è¢ììªì\ue29dé¦ê£è¢ì\ue285éªê¯è¢ì\ue29céªë§è¢ì⺱'
#meaningless according to Google Translate.
我选择UTF-8作为起始编码,因为ASCII不起作用(
UnicodeEncodeError: 'ascii' codec can't encode character '\u0192' in position 0: ordinal not in range(128)
)UTF-8应该是Windows7的默认编码(我尝试使用的操作系统)。
不完全在那里。
卡比可能在做什么,但这不是全部。首先,我不能复制他的编码:
>>> print (wat.encode("UTF-8").decode("Shift-JIS"))
UnicodeDecodeError: 'shift_jis' codec cannot decode bytes in position 22-23: illegal multibyte sequence
>>> print (wat.encode("UTF-8")[:22].decode("Shift-JIS"))
ï¾æï¾éï¾æ¹ï¾è´ï¾æ¤æ§è¾°ï¾å
维基百科说有一个非常相似的编码:CP932。
>>> print(wat.encode("UTF-8").decode("932"))
UnicodeDecodeError: 'cp932' codec cannot decode bytes in position 44-45: illegal multibyte sequence
>>> print(wat.encode("UTF-8")[:44].decode("932"))
ï¾æï¾éï¾æ¹ï¾è´ï¾æ¤æ§è¾°ï¾ååï¾æªçª¶å ï½ªï¾æ¶åィ窶å
又一次,和他贴的很不一样。不过,让我们看看:
>>> print("ãã£ã¹ãã¬ã¤ã¢\x81[ãã\x90ï¾å®ã§ãã¾ãã.\n")
ãã£ã¹ãã¬ã¤ã¢[ããï¾å®ã§ãã¾ãã.
不过,这对谷歌翻译来说是垃圾。然后我试着去掉一些碎片。考虑到这意味着“显示”,如果我移除了无法解码的位周围的“垃圾”,我会得到:
ãã£ã¹ãã¬ã¤ã¢\x81[ãã\x90ï¾å®ã§ãã¾ãã.
â ãã£ã¹ãã¬ã¤ ãã ï¾å®ã§ãã¾ãã.
â The display mode is not specified.
但是,既然我问了这么多,这不是全部的故事。
那些无法解码的字节是什么?如何从这些字节开始。