gedit 中出现“意外错误:转换输入中的字节序列无效”

gedit 中出现“意外错误:转换输入中的字节序列无效”

我有一个文本文件。我通过从某个网页复制内容到文本文件来创建文本文件的内容。在创建过程中,我完全处于 gedit 下。然后我保存了文件并退出 gedit。但从那时起,我就无法在 gedit 中打开该文件(尽管我可以在 Emacs 中打开它)。我尝试在 gedit 中打开它,但失败了,因为“意外错误:转换输入中的字节序列无效”。

  1. 如果不改变文件内容,我该如何成功打开这样的文件?
  2. 我猜想其中有一些“坏”字符,我想看看它们是什么,如果它们不重要,就删除它们。我该如何识别那些罪魁祸首字符?

谢谢!

答案1

我也遇到过同样的问题。对我来说,问题是文件的编码自上次使用 Gedit 打开以来发生了变化(从WINDOWS-1252UTF-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']"

相关内容