"Unerwarteter Fehler: Ungültige Bytesequenz in Konvertierungseingabe" in gedit

7

Ich habe eine Textdatei. Ich habe den Inhalt der Textdatei erstellt, indem ich sie von einer Webseite in sie kopiert habe. Während der Erstellung war ich völlig unter Gedit. Ich habe dann die Datei gespeichert und gedit beendet. Aber seitdem konnte ich die Datei nicht mehr in gedit öffnen (obwohl ich sie in Emacs öffnen konnte). Ich habe versucht, es in gedit zu öffnen, aber es schlägt fehl, weil "Unerwarteter Fehler: Ungültige Bytesequenz in Konvertierungseingabe".

  1. Wie soll ich eine solche Datei erfolgreich öffnen, ohne den Inhalt der Datei zu ändern?
  2. Ich denke, es gibt einige "schlechte" Charaktere darin und ich möchte sehen, was sie sind und sie entfernen, wenn sie nicht wichtig sind. Wie soll ich diese Täter identifizieren?

Vielen Dank!

Tim
quelle
1
Versuchen Sie es mit vim zu öffnen - es wird alles öffnen, glaube ich. Es kann Sie warnen, wenn es binäre Daten hat, aber ich denke, es wird es immer noch öffnen. Wenn Sie die Datei bearbeiten müssen und nicht wissen, wie man vim verwendet, geben Sie dies ein, um Hilfe zu erhalten::help tutorial
Marty Fried
Dies passiert auch bei Quantal. Dateien, die zuvor (in Precise) von gEdit geöffnet werden konnten, zeigen jetzt stattdessen diesen Fehler an. bugs.launchpad.net/ubuntu/+source/gedit/+bug/1067915
Matt White
Wie ich es gelegentlich reproduziert habe: Das Problem ist höchstwahrscheinlich der Zustand der Variablen XMODIFIERS="@im=none". Es sollte sein, XMODIFIERS="@im=xim"wenn Sie die Eingabemethode xim verwenden. Ersetzen Sie es durch ibus oder eine andere IM, die Sie verwenden.
Hi-Angel

Antworten:

2

Ich habe das gleiche Problem konfrontiert. Für mich war das Problem, dass sich die Codierung der Datei seit dem letzten Öffnen mit Gedit (von WINDOWS-1252bis UTF-8) geändert hatte . Da ich die Codierung beim ersten Öffnen der Datei manuell festgelegt hatte, hatte Gedit diese Informationen gespeichert und versucht, sie beim nächsten Öffnen der Datei nach der Codierungsänderung wiederzuverwenden. Dies führte zu dieser Fehlermeldung.

Um das Problem zu beheben, musste ich die gespeicherten Codierungsinformationen wie folgt aus den gvfs-Metadaten entfernen:

gvfs-set-attribute --type unset MY_FILE.txt 'metadata::gedit-encoding'

Sie können immer herausfinden, was Gedit über eine bestimmte Datei gespeichert hat:

gvfs-info MY_FILE.txt | grep 'metadata::gedit'

Vor dem Ausgeben des obigen Befehls lautete die Ausgabe für meine Datei beispielsweise wie folgt:

  metadata::gedit-encoding: WINDOWS-1252
  metadata::gedit-position: 0
  metadata::gedit-spell-language: de_DE

Nachdem ich das Codierungsattribut entfernt hatte, war die Ausgabe genau dies:

  metadata::gedit-position: 0
  metadata::gedit-spell-language: de_DE
Chriki
quelle
Danke Chiki! Denn gvfs-info MY_FILE.txt | grep 'metadata::gedit'meine Nur-Text-Datei gibt metadata::gedit-position: 8189nichts über die Gedit-Codierung zurück. Ändert gvfs-set-attribute --type unset MY_FILE.txt 'metadata::gedit-encoding'also kein Attribut. Ich habe immer noch den gleichen Fehler wie zuvor festgestellt.
Tim
@ Tim Ok, dann stehen wir wahrscheinlich vor verschiedenen Problemen. Was Ihnen dabei helfen könnte, Ihr Problem aufzuspüren, ist Folgendes: Sie können den Inhalt Ihrer Textdatei über eine Befehlszeile in eine neue Datei kopieren (um hoffentlich gvfs und Freunde zu umgehen), z cat MY_FILE.txt > MY_NEW_FILE.txt. Versuchen Sie dann, MY_NEW_FILE.txtin Gedit zu öffnen . Wenn der Fehler weiterhin besteht, handelt es sich wahrscheinlich wirklich um ein Inhaltsproblem. Andernfalls liegt ein (anderes) Metadatenproblem vor.
Chriki
Das Problem besteht weiterhin cat MY_FILE.txt > MY_NEW_FILE.txt. Es könnte also an einigen seltsamen Zeichen in der Textdatei liegen. Ich habe den Inhalt der Textdatei erstellt, indem ich sie von einer Webseite in sie kopiert habe. Während der Erstellung war ich völlig unter Gedit. Ich habe dann die Datei gespeichert und gedit beendet. Aber seitdem konnte ich die Datei nicht mehr in gedit öffnen (obwohl ich sie in Emacs öffnen konnte). Wissen Sie zufällig, welche anderen Lösungen ich ausprobieren kann und / oder wie Sie diese Charaktere herausfinden können?
Tim
@Tim Möglicherweise hat die Datei eine ungewöhnliche Codierung, die sich von Ihrer Standardsystemcodierung unterscheidet (wahrscheinlich UTF-8). Sie können versuchen, die Codierung mit automatisch zu erkennen chardet MY_FILE.txt( chardetist im Paket enthalten python-chardet). Dann könnten Sie die Datei in UTF-8 konvertieren, z iconv -f MY_FILE_ENCODING -t utf-8 MY_FILE.txt > MY_NEW_FILE.txt. B. über . Hoffentlich MY_NEW_FILE.txtkann dann von Gedit geöffnet werden. Eine Alternative zum Konvertieren der Codierung besteht darin, zum Dialogfeld "Öffnen" von Gedit zu wechseln und die Codierung am unteren Rand des Dialogfelds manuell auszuwählen, bevor die Datei tatsächlich geöffnet wird.
Chriki
1

Geben Sie dies in Terminal ein

gsettings set org.gnome.gedit.preferences.encodings auto-detected "['UTF-8', 'CURRENT', 'ISO-8859-15', 'UTF-16']"
user354196
quelle