Подробный гайд: Как узнать кодировку SVG: проверка XML-декларации, BOM и байтов - Часть 2

Как узнать кодировку SVG: проверка XML-декларации, BOM и байтов, определение через редакторы, file, Python и iconv, исправление кириллицы и конвертация в UTF-8.

2026.09.20                  


Подробный гайд: Как узнать кодировку SVG: проверка XML-декларации, BOM и байтов - Часть 2Подробный гайд: Как узнать кодировку SVG: проверка XML-декларации, BOM и байтов - Часть 2

9. Проверка в VS Code

VS Code очень удобен для таких случаев.

Способ 1: посмотреть в строке состояния

Откройте файл. Внизу справа может быть написано, например:

UTF-8

или:

Windows 1251

Но это та кодировка, в которой VS Code пытается открыть файл, а не обязательно фактическая.

Способ 2: переоткрыть файл в другой кодировке

  1. Откройте .svg.
  2. Нажмите на кодировку в строке состояния.
  3. Выберите Reopen with Encoding.
  4. Попробуйте:

    • UTF-8
    • Windows 1251
    • KOI8-R
    • ISO 8859-5

Если русский текст стал нормальным — вы нашли правильную кодировку.

Способ 3: сохранить в UTF-8

Когда текст отображается правильно:

  1. Нажмите на кодировку.
  2. Выберите Save with Encoding.
  3. Выберите UTF-8.

После этого проверьте, что в начале файла написано:

<?xml version="1.0" encoding="UTF-8"?>

10. Проверка в Notepad++

Notepad++ особенно удобен в Windows.

Посмотреть текущее определение

Откройте файл и посмотрите меню:

Кодировки / Encoding

Там может быть отмечено:

  • Кодировать в UTF-8;
  • Кодировать в ANSI;
  • Кодировать в UTF-16 LE;
  • и т.д.

Для русского текста в Windows под ANSI часто понимается Windows-1251.


Переоткрыть в другой кодировке

Меню:

Кодировки → Кодировать в UTF-8

или

Кодировки → Кодировать в ANSI

Но будьте внимательны: в разных версиях формулировки отличаются.

Важно различать:

  • «Открыть как…»
  • «Преобразовать в…»
  • «Кодировать в…»

Если просто выбрать неправильное действие, можно испортить файл.

Правильная логика:

  1. Если текст отображается неправильно, попробуйте открыть/переоткрыть как Windows-1251.
  2. Когда текст стал нормальным, преобразуйте файл в UTF-8.
  3. Сохраните.

11. Если файл открывается как «мусор»

Частые случаи:

Случай 1: файл в UTF-8, но открыт как Windows-1251

Вы видите:

Текст

Решение: переоткрыть как UTF-8.


Случай 2: файл в Windows-1251, но открыт как UTF-8

Вы можете видеть:

тест

или странные символы, иногда с вопросиками.


Решение: переоткрыть как Windows-1251, затем сохранить в UTF-8.


Случай 3: файл уже был испорчен сохранением

Если вместо букв уже сохранены вопросики:

????

или заменённые символы:

□□□□

то восстановить текст может быть невозможно. Потеря данных произошла при предыдущем сохранении.


12. Как отличить заявленную кодировку от фактической

Допустим, в файле написано:

<?xml version="1.0" encoding="UTF-8"?>

Но при открытии в UTF-8 русский текст выглядит так:

Текст

Значит одно из двух:

  1. Файл на самом деле не в UTF-8.
  2. Файл был испорчен ранее.

Проверьте байты.

Если в байтах русские буквы представлены как F2 E5 F1 F2, то это, например, тест в Windows-1251.

А в UTF-8 тест должен быть примерно таким:

D1 82 D0 B5 D1 81 D1 82

Если в файле реально байты F2 E5 F1 F2, а в декларации написано UTF-8, то декларация неверна.


13. Проверка через браузер

Откройте .svg напрямую в браузере:

file:///путь/к/file.svg

или через локальный сервер:

http://localhost:8000/file.svg

Если браузер показывает русский текст нормально — скорее всего кодировка корректная.

Но браузер может учитывать:

  • XML-декларацию;
  • BOM;
  • HTTP-заголовок Content-Type;
  • фактические байты.

Поэтому для надёжности лучше проверять не только браузером.


14. Проверка HTTP-заголовков

Если SVG отдаётся сайтом, кодировка может быть указана не только в файле, но и в HTTP-заголовке.

Команда:

curl -I https://example.com/image.svg

Ищите заголовок:

Content-Type: image/svg+xml; charset=utf-8

или:

Content-Type: image/svg+xml

Если charset не указан, браузер будет определять кодировку по содержимому файла, BOM и XML-декларации.

Для SVG лучше отдавать:

Content-Type: image/svg+xml; charset=utf-8

15. Если файл на самом деле .svgz

Иногда .svg может быть сжат как gzip, особенно если файл называется .svgz.

Признак: первые байты:

1F 8B

Распаковать можно так:

gunzip -c file.svgz > file.svg

или:

zcat file.svgz > file.svg

В Windows можно использовать 7-Zip или другие архиваторы, но лучше помнить, что .svgz — это именно gzip, а не обычный ZIP. После распаковки проверяйте уже обычный SVG.




Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

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