我试图弄清楚如何解码来自Windows应用程序的“遗留”二进制文件(anno±1990)。具体来说,我很难理解为存储的字符串使用了哪种特定的编码。
示例:unicode字符串“Düsseldorf”表示为“Du \ _06sseldorf”或hex“44 75 06 73 73 65 6C 64 6F 72 66”,其中一切都是单字节,但“u + \ 06”神秘地变为一个u-umlaut。
它是完全专有的吗?有什么想法吗?
答案 0 :(得分:6)
由于这个应用程序预先存在DBCS和Unicode,我怀疑它是专有的。看起来他们可能正在使用低于31的非ASCII值来表示各种重音符号。
\06
可能表示“在前一个字符上放置了一个变音符号”。
尝试用"Du\05sseldorf"
替换字符串,看看重音是否因u而改变。然后尝试1到31之间的其他转义值,我怀疑你可能能够为这些转义字符想出一张地图。当然,一旦你有了地图,就可以轻松地创建一个例程,用适当的现代Unicode字符串替换所有字符串并使用重音符。