我有一个文本文件。我通过从某个网页复制内容到文本文件来创建文本文件的内容。在创建过程中,我完全处于 gedit 下。然后我保存了文件并退出 gedit。但从那时起,我就无法在 gedit 中打开该文件(尽管我可以在 Emacs 中打开它)。我尝试在 gedit 中打开它,但失败了,因为“意外错误:转换输入中的字节序列无效”。
- 如果不改变文件内容,我该如何成功打开这样的文件?
- 我猜想其中有一些“坏”字符,我想看看它们是什么,如果它们不重要,就删除它们。我该如何识别那些罪魁祸首字符?
谢谢!
答案1
我也遇到过同样的问题。对我来说,问题是文件的编码自上次使用 Gedit 打开以来发生了变化(从WINDOWS-1252
到UTF-8
)。由于我在第一次打开文件时手动设置了编码,因此 Gedit 保存了此信息并在编码更改后下次打开文件时尝试重新使用它;这导致了上述错误消息。
为了解决这个问题,我必须从 gvfs 元数据中删除已保存的编码信息,如下所示:
gvfs-set-attribute --type unset MY_FILE.txt 'metadata::gedit-encoding'
您随时可以了解 Gedit 保存了有关特定文件的信息:
gvfs-info MY_FILE.txt | grep 'metadata::gedit'
例如,在发出上述命令之前,我的文件的输出如下:
metadata::gedit-encoding: WINDOWS-1252
metadata::gedit-position: 0
metadata::gedit-spell-language: de_DE
在我删除编码属性之后,输出就是这样的:
metadata::gedit-position: 0
metadata::gedit-spell-language: de_DE
答案2
在终端中输入此
gsettings set org.gnome.gedit.preferences.encodings auto-detected "['UTF-8', 'CURRENT', 'ISO-8859-15', 'UTF-16']"