Текстовые редакторы Добавление текста при сохранении после удаления символов

290
Kevin Kleinfelter

Когда я удаляю текст из текстового файла на ПК с Windows с большинством текстовых редакторов, к файлу добавляются дополнительные байты.

  • Это происходит, когда я редактирую файл на моем флэш-накопителе FAT32 или на USB-накопителе с вращающимся диском с NTFS.
  • Это НЕ происходит, когда я копирую файл на мой NTFS C-диск и редактирую его там.
  • Если я делаю копию файла на моем флэш-накопителе, проблема также возникает с копией.
  • Проблема не возникает, если я редактирую файл с помощью Блокнота или JEdit.
  • Проблема действительно возникает, если я редактирую с помощью Notepad ++, Sublime Text 3, Notepad2, Visual Studio Code или WordPad.
  • Я заменил флэш-накопитель на новый, и проблема вернулась.
  • Проблема не возникает с каждым текстовым файлом на флэшке.
  • Проверка ошибок файловой системы сообщает об отсутствии ошибок.
  • После копирования файла с флэш-накопителя на диск C и обратно на флэш-накопитель проблема НЕ устраняется.
  • Проблема не возникает, если я редактирую проблемный файл на флэш-накопителе, используя vi из Cygwin.
  • Если я перенесу флэш-накопитель на другой ПК с Windows, проблема не возникнет там.

Есть идеи, как это исправить?

0
Какой у вас текстовый редактор? harrymc 5 лет назад 0
Вы исследовали эти дополнительные байты? harrymc 5 лет назад 0
«Дополнительные байты» - они также появляются в текстовом редакторе или вы видите их только в шестнадцатеричном редакторе? Máté Juhász 5 лет назад 0
Дополнительные символы - это символы, которые находятся в конце исходного файла. Все они являются печатными символами, согласно шестнадцатеричному дампу. Похоже, что удаление текста из верхней части файла оставляет «помет» позади, так как символы в конце движутся вверх. Если бы не тот факт, что это происходит с несколькими широко используемыми редакторами, я бы сказал, что это была ошибка редактора, которая не могла правильно установить EOF. Я не вижу символов при сохранении файла, но если я выхожу из редактора и заново открываю файл, я вижу их. Kevin Kleinfelter 5 лет назад 0
Не Макафи. Отключил это и проблема осталась. Не расширение файла. Переименовал файл в .txt, и проблема не исчезла. Я скопировал файл на USB-диск с вращающимся диском и NTFS, и проблема возникает там (но это не происходит на моем C-диске). Что-то на этой машине портит EOF на USB-накопителях. Kevin Kleinfelter 5 лет назад 0
Ха! Все ближе. Проблема не возникает с JEdit в его конфигурации по умолчанию. JEdit переименовывает старый файл и записывает обновленный контент в новый файл с оригинальным именем. Я думаю, что Блокнот делает полную запись файла. Похоже, что редакторы, которые обновляют файл на месте, затронуты. Kevin Kleinfelter 5 лет назад 0

1 ответ на вопрос

0
Kevin Kleinfelter

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

Любой редактор, который обновляет файл на месте, показывает это поведение на моем компьютере. Редакторы, которые записывают вывод в новый файл (и переименовывают старый файл в .bak, а затем переименовывают новый файл в исходное имя файла), работают правильно на этом компьютере.