Я делаю исследовательский проект в обработке естественного языка. Для этого я должен проанализировать unicode (сингальский) текстовый файл приблизительно 10 МБ, и он открывается в документах 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, я получаю ту же ошибку. Как я могу зафиксировать это? Как я могу открыть этот файл в gedit?
Я не уверен, какова причина проблемы, но я смог воспроизвести ее в своей системе.
Экспериментально, я работал dos2unix
на файле и выводе сказал, что это был файл UTF-16LE. Для любопытного LE означает прямой порядок байтов. После dos2unix
преобразовал файл в формат UTF-8, я смог открыть его с Gedit.
sudo apt install dos2unix
dos2unix -n oldfile newfile
gedit newfile
Я использовал -n
флаг, чтобы не перезаписывать исходный файл. Замена oldfile
с исходным именем файла и newfile
с чем Вы хотите, чтобы новый файл был назван. Используйте заполнение клавишей Tab (введите запуск имени файла и вкладки нажатия, и полное имя должно появиться), или '
кавычки, если Ваше имя файла имеет пробелы или другие специальные символы.
Как заметка на полях, я смог открыть файл, не преобразовывая его использование Pluma, текстовый редактор на основе Gedit, таким образом, я подозреваю, что это может быть ошибкой в Gedit. Передача --encoding UTF-16LE
или --encoding UTF-16
к Gedit при открытии файла не помог.