我正在做一个 NLP 研究项目。为此,我必须分析 unicode(僧伽罗语)文本文件大约 10mb,可在 Google 文档中打开。但当我尝试从 gedit 打开它时,出现了此错误
意外错误:转换输入中的字节序列无效
因此,我遵循了类似问题并尝试了第二个答案,建议在终端中运行此命令:
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 中打开文件时,我得到了同样的错误。我该如何解决这个问题?我该如何在编辑?
答案1
我不确定问题的原因是什么,但我能够在我的系统上重现它。
我试验性地运行了dos2unix
该文件,输出显示它是一个 UTF-16LE 文件。对于好奇的人来说,LE 意味着小端序。dos2unix
将文件转换为 UTF-8 格式后,我就能用 Gedit 打开它了。
sudo apt install dos2unix
dos2unix -n oldfile newfile
gedit newfile
我使用-n
标志来避免覆盖原始文件。oldfile
用原始文件名和newfile
您想要的新文件名称替换。使用制表符补全(键入文件名的开头并按制表符,应该会出现全名)或'
引号(如果您的文件名有空格或其他特殊字符)。
顺便说一下,我可以使用以下方法打开该文件而无需进行转换普卢马,一款基于 Gedit 的文本编辑器,所以我怀疑这可能是 Gedit 的一个错误。打开文件时将--encoding UTF-16LE
或传递给 Gedit 并没有帮助。--encoding UTF-16