Редактор Atom изменит кодировку на UTF-8 - PullRequest
0 голосов
/ 01 августа 2020

Всем добрый вечер ~

Кто-то прислал мне простой текстовый файл SQL для интеграции в приложение, требующее кодировки UTF-8. Я использую Ma c, они - windows, но я не знаю, какую кодировку они использовали.

Выполнение file -I в файле sql возвращает: application/octet-stream; charset=binary

Когда я открываю в редакторе Atom в MacOS, я могу прочитать файл с UTF-8, выбранным в правом нижнем подбаре (между разрывом строки = LF и синтаксисом = SQL), но я могу скажите, что он на самом деле не сохраняется как UTF8 по двум причинам:

  1. /* SQL comments */ не запускает SQL раскраску синтаксиса с использованием UTF8, то есть редактор синтаксиса не распознает /* comment text */ в качестве комментариев, я предполагаю, что из-за лишнего невидимого символа нарушается сопоставление с шаблоном. когда я переключаюсь на UTF-16LE, /* comment text */ привязывается к правому темно-серому цвету, как и ожидалось, т.е. редактор теперь правильно читает текст

  2. , когда я стрелка влево / вправо вокруг файла требуется 2 стрелки для перемещения одного символа. аналогично, счетчик строк / столбцов в левом нижнем углу (после пути к файлу) отсчитывает два столбца для каждого видимого символа, перемещаемого курсором.

Я предполагаю, что селектор кодировки нижний правый - только для просмотра, что имеет смысл. Учитывая, что это простой файл SQL без специальных символов, я действительно хочу «Сохранить как UTF8» и заставить редактор выбросить лишние невидимые символы.

Я пробовал несколько решений я нашел в сети, все безуспешно:

  • вырезать все содержимое из исходного файла, изменить кодировку на UTF8, затем вставить и сохранить ... без изменения поведения
  • создать новый UTF8, затем скопируйте / вставьте все содержимое ... что интересно, я получаю файл "UTF8", для которого требуется 4 стрелки влево на каждый видимый сдвиг символа. Неправильное направление.
  • бег iconv -c -t UTF-8 Dictionary_Analysis.coa.sql > DictTest.sql без изменения поведения
  • изменил файл на UTF8 и вручную перепечатал некоторые комментарии ... это сработало! для тех байтов, которые я ввел вручную, это UTF8, так как поведения 1 и 2 возвращаются к «нормальному», как в случае 1 стрелка влево == 1 количество столбцов == одно видимое движение, и комментарии имеют правильный синтаксис.

Но я не хочу перепечатывать весь их SQL документ. Назовите меня ленивым, но я уверен, что есть способ получше.

Мысли?

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

Спасибо!

...