1

我有一个 geany 告诉我的文件是 UTF-8 文件,但包含以下字符:

ù 而不是 ù

等等。那是因为 0xC3 + 0xB9 被认为是两个字符,而不仅仅是 U+00F9,对吧?使用 geany,文件的编码已经是 UTF-8,如果我切换到 ISO-8859,我当然不会得到更正的字符。

有没有像 bash 命令、java 类、ruby 模块或魔法药水这样的东西可以自动改变这个东西,而无需手动操作?

编辑:

如果我尝试切换,则无法保存文件,因为出现以下错误:

错误消息:转换输入中的字节序列无效错误发生在“€”(行:1389,列:46)。

4

2 回答 2

1

听起来 Geany 将文件解释为 ISO-8859-1,正如您所说,这意味着它显示的是两个字符而不是一个字符。

两个可能有用的命令:odiconv. od 是“八进制转储”,您可以使用它来准确验证文件中的字节。iconv用于将字符串从一种编码转换为另一种编码。

于 2012-06-25T14:03:20.940 回答
1

这似乎是 Geany 的错误。如果您打开ANSI文件(在 Windows 中创建),Geany 会将文件解释为ISO-8859-1。当您尝试添加一些 unicode 符号并保存它时,您会得到

An error occurred while converting the file from UTF-8 in "ISO-8859-1".  

尝试Document->Set Encoding->Unicode (UTF-8)并保存文档。它有助于。

于 2012-08-15T09:52:51.833 回答