fixmint
RU

Курсивные кавычки и тире ломают код: как их выпрямить

Автор: · · обновлено 8 ноября 2026 г. · Чтение: 4 мин

Типографские кавычки, typographic-апострофы, среднее и длинное тире и неразрывные пробелы выглядят как обычные символы, но компьютер воспринимает их как другие знаки. Код, CSV-файлы, формулы в таблицах и командная строка ожидают обычные. Вставленная кавычка перестаёт быть границей строки, двойной дефис в флаге превращается в тире, а неразрывный пробел может помешать программе прочитать строку. Выпрямите символы перед вставкой в код, а потом проверьте результат там, где он будет работать.

Исправление вставленного текстаВ вставленном тексте лишние переносыСделать бесплатно

Откуда берутся эти символы

Текстовые редакторы и многие почтовые программы заменяют прямые кавычки типографскими, пока вы печатаете. Это называется «умные кавычки». Word может также превратить два дефиса в тире. Веб-страницы и некоторые редакторы вставляют неразрывные пробелы, U+00A0, которые не дают двум словам разорваться на разные строки. Эти символы правильны для типографики, поэтому они и появляются. Для любой программы, которая читает текст, они неверны.

Что ломается и где

ГдеЧто идёт не так
Исходный кодТипографские кавычки не работают как ограничители строк, и многие языки отвергают типографскую кавычку или неразрывный пробел вне строки
Команды оболочкиТире, введённое как среднее тире, не является признаком опции, поэтому программа видит неизвестный аргумент
CSV-файлыПарсеры заключают поля в прямые двойные кавычки, поэтому типографские кавычки не защищают запятую внутри поля
Формулы в таблицахТипографские кавычки становятся частью текста, или формула выдаёт ошибку
JSONТипографские кавычки не являются допустимыми ограничителями строк, поэтому парсер завершается с ошибкой

Правила кавычек, которым следуют CSV-файлы, описаны в руководстве по переводу CSV в JSON.

Выпрямите их в fixmint

Три инструмента покрывают типичные случаи, и каждый обрабатывает свой набор символов.

  1. Типографские кавычки. Откройте исправление вставленного текста и отметьте «Выпрямить типографские кавычки». Инструмент заменяет одинарные типографские кавычки и апострофы на прямую одинарную кавычку, а двойные типографские кавычки на прямые двойные. Тире он не трогает. Остальные опции, например обрезка строк и сжатие повторяющихся пробелов, включены по умолчанию.
  2. Тире, многоточия и необычные пробелы. Откройте удаление невидимых символов и отметьте «Также заменить типографские кавычки, среднее/длинное тире и … на обычный ASCII». Тире превращаются в дефис, а многоточие в три точки. Неразрывные пробелы по умолчанию становятся обычными. Режим с пометками показывает, где сделана каждая замена.
  3. Один символ или фраза. Откройте поиск и замену, оставьте выключенным режим регулярных выражений и введите символ в поле «Найти», а его обычный вариант в поле «Заменить». Когда регулярные выражения выключены, поле «Найти» воспринимается буквально, поэтому типографская кавычка совпадает только сама с собой.

Вот вторая утилита, применённая к типичной вставке:

ДоПосле
“Привет,” сказала она."Привет," сказала она.
It’s done.It's done.
—verbose-verbose

Последняя строка показывает ограничение. Каждое тире становится одним дефисом, поэтому двойной дефис, который текстовый редактор объединил в одно длинное тире, возвращается как один дефис. Флаги вроде --verbose после преобразования исправьте вручную.

Вставьте результат туда, где он будет работать, и проверьте его там. Выпрямление не меняет смысл текста, поэтому успешный запуск и есть настоящая проверка.

Проверьте результат

Ещё раз прогоните выпрямленный текст через удаление невидимых символов и посмотрите режим с пометками. Любая оставшаяся пометка означает символ, который первый проход не охватил, например пробел нулевой ширины или необычный пробел. Режим с пометками показывает, где находится каждый такой символ, и вы можете исправить его на месте.

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

Когда не нужно выпрямлять

Оставляйте типографские кавычки и тире в тексте, который люди читают в печати или на веб-странице. Там это правильная типографика. Выпрямляйте только текст, который пойдёт в код, CSV, формулу или команду. Для текста, который вы пишете в текстовом редакторе, отключите опцию умных кавычек, если позже планируете вставить его в код.

Особые случаи

  • Смешанные кавычки. Документ может содержать и типографские, и прямые кавычки. Выполните выпрямление один раз, затем поищите в результате оставшиеся, потому что источники отличаются.
  • Апострофы в словах. Типографский апостроф в сокращении становится прямым, что ожидает большинство кода. Проверьте все сокращения внутри строк.
  • Сохраните исходник. Выпрямление необратимо: прямая кавычка не скажет, из какой типографской она получилась. Сохраните исходный документ и вносите изменения в копию.
  • Тире в предложениях. Длинное тире, которым отбивают фразу, становится дефисом, и «подожди — стоп» превращается в «подожди - стоп». Если текст предназначен для чтения, а не для кода, перепечатайте его вручную.
  • Невидимые символы. В вставленном тексте могут быть и пробелы нулевой ширины. Они не являются кавычками, но ломают код похожим образом. О них рассказано в руководстве по скрытым символам в тексте.

Переведено с помощью ИИ с Английский оригинал.

Комментарии

    Комментариев пока нет. Будьте первым.

    Ваша оценка (необязательно)

    Ваша почта никогда не показывается и не сохраняется.

    Обложка книги «How to Remain Valuable When Intelligence Becomes Cheap»How to Remain Valuable When Intelligence Becomes Cheap

    224 страницы о человеческих, экономических и стратегических преимуществах, которые сохраняют ценность, когда ИИ может выполнять большую часть когнитивной работы.

    $3.84Купить на GumroadНа английском