UTF-8文件中的坏字符

时间:2012-06-25 09:09:50

标签: scripting utf-8

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

ù而不是ù

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

是否有像bash命令,java类,ruby模块或魔法药水一样可以自动更改此东西而无需手动执行此操作?

编辑:

如果我尝试切换我无法保存文件,因为我有错误:

  

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

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

尝试文档 - >设置编码 - > Unicode(UTF-8)并保存文档。它会有所帮助。