Как мне избавиться от недопустимых символов в текстовом файле при использовании Gedit?

Проблема

Gedit сообщает, что один из моих файлов, использующих кодировку UTF-8, содержит недопустимые символы и может быть поврежден, если я продолжу его использовать.

Подробности

Вопросом является мой список "Когда-нибудь / Может быть". Я обычно добавляю в него ссылки на источники, которые хочу прочитать, например, сообщения в блогах. Я подозреваю, что ссылка на один из добавленных мною источников содержала недопустимые символы, что привело к моей проблеме.

Я обнаружил здесь , что мне нужно запустить isutf8, а затем использовать xxd или hexdump для сканирования файла на предмет недопустимых символов. Запуск isutf8 бессмысленен, потому что, если эта страница верна, все, что она делает, это сообщает вам, содержит ли файл недопустимые символы или нет. Я прочитал несколько страниц руководства по xxd и другие источники по hexdump, но я ничего из этого не понимаю.

Что я пробовал

Немного. Я боюсь, что могу сломать файл или что-то еще, если отредактирую его, поэтому я оставил его нетронутым. Кроме того, у меня слабые исследовательские навыки, поэтому я не мог найти решение этой проблемы сам.

1
задан 5 April 2021 в 16:37

2 ответа

В принципе, этого может не произойти, если вы используете исключительно Gedit для редактирования файла. В этом случае символы будут автоматически преобразованы в код символа текущего текстового файла.

Если по какой-то причине будут введены неправильно закодированные символы, то один из способов узнать, где они находятся, - это использовать

grep -axv '.*' file.txt

(кредит здесь ). Эта команда покажет только строки, содержащие недопустимые символы. Чтобы облегчить идентификацию строки, вы можете добавить параметр -n для отображения номера строки.

Затем откройте файл в Gedit, пропустив появившееся предупреждающее сообщение. Затем вы можете отредактировать неправильные символы. Сохраните и закройте, затем снова откройте файл. Если больше не выводится предупреждение, все неправильные символы были удалены.

0
ответ дан 23 April 2021 в 23:25

Если повезет [Если такой файл будет использоваться только для чтения в gedit или аналогичном средстве просмотра текста, все, что вы получите, это один или несколько нераспознанных символов, которые не будут отображаться осмысленно]

Если у вас только один очень недавнее изменение, вызывающее проблему, все очень просто.

Сделайте несколько резервных копий текущего файла И автоматического резервного копирования, которое, вероятно, создаст для вас gedit. Есть много способов копирования и резервного копирования файлов, многие из которых можно автоматизировать, но самый простой способ прямо сейчас - отметить, что Linux позволит вам иметь файл с тем же именем, если он находится в другом каталоге, папке или устройстве. Так что, возможно, создайте подпапки, возможно, назовите их usenow1 backup1 и backup2 и скопируйте файл в каждую из этих папок.

Примечание. Gedit разрешает автоматическое резервное копирование. Настройки> редактор> [x] Создать файл резервной копии перед сохранением.

Если это было, у вас уже будет файл резервной копии, сохраненный автоматически, он будет с тем же именем и расположением, но будет заканчиваться символом «лебедь ~». Если у вас есть такой файл, сделайте несколько его копий одновременно.

Теперь вы можете работать с одной из копий, будучи уверенными в том, что вы не уничтожите ничего, что еще не было уничтожено, и что у вас есть резервные копии. Swandash в конце файла - это нормально, если вы закрылись после первого предупреждения. Переименуйте это, возможно, в любое имя файла с v02, добавленным перед .txt и удаленным ~ в конце. Откройте его с помощью gedit, и у вас должна быть копия не поврежденного файла.

Теперь, если вы работаете с каким-либо инструментом командной строки или, возможно, вы предпочитаете графический интерфейс, попробуйте объединить или что-то в этом роде, и вы можете сравнить поврежденный файл и тот, который у вас есть, и разобраться, что вы хотите сохранить, а что хотите удалить. .

Возможно, вам будет интересно проверить свой файл с помощью iconv см. https://www.debian.org/doc/manuals/debian-reference/ch11.en.html#_checking_file_to_be_utf_8_with_iconv

Также обратите внимание, если вы используете save as gedit может предлагать другие варианты кодирования, и один из них может подходить для вашей недавно добавленной информации.

0
ответ дан 23 April 2021 в 23:25

Другие вопросы по тегам:

Похожие вопросы: