什么代码页将'ç'编码为'?º'(0x3f 0xba)

今天我收到了一个客户的文件,我必须阅读,但它包含奇怪的字符。使用已知名称,我可以猜出一些字符的含义。 例如:
Realname  | Encoded as   | sign  | hex
----------|--------------|-------|-------
Françios  | Fran?ºios    | ç     | 3f ba
André     | Andr??       | é     | 3f 3f
Hélène    | H??l?¿ne     | è     | 3f bf
etc.
我已经尝试了所有代码页(已知为.Net)来导入文件,看看它们是否包含我所知道的单词。但没有代码页让我满意。 在Notepad ++中打开文件认为它是ANSI,并且还显示不需要的字符。 (但它有一个有用的十六进制编辑器插件)。 其他文件(来自同一用户和zip文件)以UTF-8编码。 从我收到文件的那个人,我不能指望帮助。 (使用谷歌翻译)他向我明确表示他发现创建文件非常困难,他正在使用我无法访问的软件(我相信SAP)。 有没有其他方法我可以找到他刚刚发送给我的文件的编码?     
已邀请:
如果我采用UTF-8编码文本,假装它是CP850,然后将其转换为Latin-1,Windows-1252或类似编码,我可以获得这些结果。 “?”来自于0xc3处的CP850字符为“├”的事实,其在Latin-1或派生编码中不存在,因此转换将其替换为“?”。 编辑:我使用iconv做了一些更广泛的搜索,CP437,CP862或CP865比CP850更好。既然你问过,我这次使用的单线是:
for enc in `iconv -l`; do echo -n "$enc: "; echo -n "ç é è" | iconv -s -f $enc -t "LATIN1//TRANSLIT" 2>/dev/null; echo; done
    
它应该是UTF-8或UTF-16。 它们几乎包含所有常规字符。 看起来你有一个解码/编码问题。 记事本++它可能会混淆,因为你的文件不使用Byte-Order-Mark。 你如何处理你的文件? 尝试将它们作为二进制文件读取,然后尝试不同的编码来获取字符串。 如果您不将它们作为二进制读取,则可能会发生默认编码。 “?”是一个标志。 可能会有所帮助。     

要回复问题请先登录注册