Подробный гайд: Как узнать кодировку SVG: проверка XML-декларации, BOM и байтов - Часть 2
9. Проверка в VS Code
VS Code очень удобен для таких случаев.
Способ 1: посмотреть в строке состояния
Откройте файл. Внизу справа может быть написано, например:
UTF-8
или:
Windows 1251
Но это та кодировка, в которой VS Code пытается открыть файл, а не обязательно фактическая.
Способ 2: переоткрыть файл в другой кодировке
- Откройте
.svg. - Нажмите на кодировку в строке состояния.
- Выберите Reopen with Encoding.
- Попробуйте:
UTF-8Windows 1251KOI8-RISO 8859-5
Если русский текст стал нормальным — вы нашли правильную кодировку.
Способ 3: сохранить в UTF-8
Когда текст отображается правильно:
- Нажмите на кодировку.
- Выберите Save with Encoding.
- Выберите
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
Но будьте внимательны: в разных версиях формулировки отличаются.
Важно различать:
- «Открыть как…»
- «Преобразовать в…»
- «Кодировать в…»
Если просто выбрать неправильное действие, можно испортить файл.
Правильная логика:
- Если текст отображается неправильно, попробуйте открыть/переоткрыть как
Windows-1251. - Когда текст стал нормальным, преобразуйте файл в
UTF-8. - Сохраните.
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 русский текст выглядит так:
Текст
Значит одно из двух:
- Файл на самом деле не в UTF-8.
- Файл был испорчен ранее.
Проверьте байты.
Если в байтах русские буквы представлены как 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.
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.