【发布时间】:2021-07-07 08:55:06
【问题描述】:
我有一个 EBCDIC 格式的文件,需要将其转换为 Unicode 格式,因为它包含一些外语字符。
【问题讨论】:
-
"Unicode" 并不是真正的文件格式——最常见的基于 Unicode 的文件格式是 UTF-8(有或没有 BOM)。也许这有帮助:jonskeet.uk/csharp/ebcdic
-
我尝试从提到的文章中获得帮助。当我手动更改原始文件编码时,“‰”之类的字符将更改为“0X89”(请注意,我使用 Notepad++ 打开这些文件,默认格式为 ANSI,我手动选择编码 UTF-8),但是当我尝试使用上述程序,它是“i”。我想我错过了一些东西。请帮忙。
-
您必须区分字节(编码)和字符。文件由字节组成;编码决定了这些如何被解释为字符。在 EBCDIC 中,例如字节 0x89 对应于字符“i”。相同的字节 0x89 在 Windows-1252 中是“‰”。
-
我明白,但是当我第一次转换文件然后尝试替换字节时,原始文件中的某些特殊字符不会更改/丢失。我想知道我的方法应该是先读取原始文件,替换上面的字节然后更改编码。但这也矛盾,因为当我打开文件时,它将有符号而不是十六进制。所以我在这里理解的是我应该先尝试以十六进制格式读取文件,替换字节然后更改编码。这是一个正确的方法吗?
-
大家好,我在主要问题之后有疑问。我的输出文件应该显示中文和英文字符,但我只能显示英文?我在这里缺少什么?