ASCII码0x00A0如何变成0x00E1

How does ASCII 0x00A0 becomes 0x00E1

我正在对一个旧的解析器应用程序进行逆向工程,文本文件中的 ASCII 代码 00A0(“NO-BREAK SPACE”)被解析为 00E1(“带尖音符号的拉丁文小写字母 A” ).

发生了何种编码或强制转换,如何在 C# 中重现此行为?

看起来像 CP 850 (DOS) 编码:https://en.wikipedia.org/wiki/Code_page_850

您可以通过 Encoding.GetEncoding(850) 获得该代码页的编码。

https://docs.microsoft.com/en-us/dotnet/api/system.text.encoding?view=net-5.0

请记住,有多个相似的代码页略有不同。因为...标准。