web-dev-qa-db-ja.com

geditエラー:「予期しないエラー:変換入力のバイトシーケンスが無効です」

私はNLPで研究プロジェクトを行っています。そのためには、ユニコード(シンハラ語)を分析する必要があります テキストファイル 約10 MBで、Googleドキュメントで開きます。しかし、geditから開こうとすると、このエラーが発生します。

予期しないエラー:変換入力の無効なバイトシーケンス

それで、私はこれに沿って 類似した質問 を実行し、ターミナルでこのコマンドを実行することを提案する2番目の答えを試しました。

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

私はターミナルでこの結果を得ました:

GLib-GIO-Message: Using the 'memory' GSettings backend.  Your settings will not be saved or shared with other applications.
No such key “auto-detected”

したがって、成功しません。 geditでファイルを開こうとすると、同じエラーが発生します。どうすれば修正できますか?このファイルをgeditで開くにはどうすればよいですか?

5
Thidasa Pankaja

問題の原因がわからないが、システム上で再現できた。

実験的に、ファイルに対してdos2unixを実行しましたが、出力ではUTF-16LEファイルであることが示されました。好奇心が強い人にとって、LEは リトルエンディアン を意味します。 dos2unixがファイルをUTF-8形式に変換した後、Geditで開くことができました。

Sudo apt install dos2unix
dos2unix -n oldfile newfile
gedit newfile

元のファイルの上書きを避けるために、-nフラグを使用しました。 oldfileを元のファイル名に、newfileを新しいファイルを呼び出す名前に置き換えます。タブ補完(ファイル名の先頭を入力してTabキーを押すと、フルネームが表示されます)またはファイル名にスペースまたはその他の特殊文字が含まれる場合は'引用符を使用します。

補足として、Geditに基づくテキストエディター Pluma を使用して変換せずにファイルを開くことができたので、これはGeditのバグであると思われます。ファイルを開くときに--encoding UTF-16LEまたは--encoding UTF-16をGeditに渡すことは役に立ちませんでした。

6
Zanna