🔤

Детектор Кодировки Текста

Браузерный детектор кодировок с загрузкой примера, подсказками по конвертации и документацией на 16 языках.

Ввод Текста

Что такое Кодировка Символов

Кодировка символов - это система сопоставления символов с двоичными значениями для компьютерного хранения и передачи. Разные кодировки используют разные сопоставления: ASCII использует 7 бит (128 символов, только английский), ISO-8859-1 (Latin-1) расширяется до 8 бит (256 символов, Западная Европа), GB2312/GBK для упрощенного китайского, Big5 для традиционного китайского, Shift-JIS для японского, UTF-8 (1-4 байта, универсальный, обратно совместим с ASCII), UTF-16 (2 или 4 байта). Кракозябры (искаженный текст как �) возникают, когда текст, закодированный в одной кодировке, декодируется с другой. BOM (Byte Order Mark) - это необязательная подпись в начале файла, идентифицирующая кодировку. Правильное определение кодировки предотвращает повреждение данных и обеспечивает правильное отображение текста в разных системах и языках.

Возможности

🔍

Умное Определение

Автоматическое определение кодировки текста с использованием статистического анализа, определения BOM, распознавания паттернов символов. Поддержка UTF-8/16/32, GBK, GB2312, Big5, Shift-JIS, серии ISO-8859, Windows-1252 с оценками уверенности
🔄

Преобразование Кодировок

Преобразование текста между любыми поддерживаемыми кодировками: UTF-8 ↔ GBK ↔ Big5, исправление проблем кракозябр, добавление или удаление маркеров BOM, правильная обработка суррогатных пар и объединяющих символов
🩺

Диагностика Кодировки

Идентификация проблем кодировки: недопустимые последовательности байтов, смешанные кодировки в одном файле, несоответствия BOM, ошибки суррогатных пар с предложениями по исправлению и подробными отчетами об ошибках
📦

Пакетная Обработка

Одновременная обработка множественных файлов с определением кодировки, преобразование целых каталогов, сохранение структуры файлов, генерация отчетов о преобразовании со статистикой и журналами ошибок
🎯

Сценарии применения

🏢

Миграция легаси-систем

Конвертируйте архивы GBK/Big5 в UTF-8 при модернизации финансовых, ERP или государственных систем.
🌐

Глобальный контент и SEO

Команды проверяют, что многоязычные сайты, RSS и рассылки объявляют верную кодировку и не дают кракозябры.
🧾

Пайплайны загрузки данных

Проверяйте кодировку логов, CSV и ETL от партнёров перед загрузкой в витрины данных или Spark.
🛠️

Отладка разработчика

Быстро находите конфликты BOM или смешанные кодировки в Git diff и экспортированных дампах БД.

📋Руководство по использованию

1️⃣
Загрузить или Вставить
Загрузить текстовый файл или вставить текстовое содержимое для анализа кодировки
2️⃣
Определить Кодировку
Нажать определить для автоматической идентификации кодировки или указать вручную, если известно
3️⃣
Просмотреть Результаты
Проверить обнаруженную кодировку, уровень уверенности, наличие BOM и предпросмотр текста
4️⃣
Преобразовать При Необходимости
Выбрать целевую кодировку, преобразовать текст, скачать или скопировать преобразованный результат

📚Техническое введение

🔤Стандарты Кодирования

Кодировки символов эволюционировали для поддержки различных языков: ASCII (1963, 7 бит, 128 символов, английский). Серия ISO-8859 (8 бит, 256 символов, региональные: -1 латиница, -2 Центральная Европа, -5 кириллица, -6 арабский). DBCS (Двухбайтовый) для азиатских языков: GB2312 (1980, 6763 упрощенных китайских), GBK (21886 символов, расширение GB2312), Big5 (13060 традиционных китайских), Shift-JIS (японский, сложные правила байтов). Консорциум Unicode создал универсальную кодировку: UTF-8 (переменная 1-4 байта, совместима с ASCII, веб-стандарт), UTF-16 (2 или 4 байта, по умолчанию Windows/Java, требуется BOM), UTF-32 (фиксированные 4 байта, расточительный, но простой). Современные системы предпочитают UTF-8 для хранения, UTF-16 для обработки в памяти.

🔍Алгоритмы Обнаружения

Обнаружение кодировки использует множественные методы: 1) Обнаружение BOM: UTF-8 (EF BB BF), UTF-16 LE (FF FE), UTF-16 BE (FE FF), UTF-32 LE (FF FE 00 00). 2) Статистический анализ: распределение частоты символов, паттерны байтов, допустимые последовательности байтов. Библиотеки как chardet (Python), ICU (C++), jschardet (JavaScript) используют символьные n-граммы и языковые модели, обученные на образцах текстов. 3) Валидация: проверка формирования байтами допустимых последовательностей для кодировки (UTF-8 имеет специфические правила байтов продолжения, GB2312 имеет определенные диапазоны кодов). 4) Эвристика: расширение файла (.txt), HTTP заголовки (charset), XML объявления (<?xml encoding="">). Оценки уверенности комбинируют множественные сигналы. Ложноположительные результаты возникают с короткими текстами или редкими символами.

🔄Преобразование Кодировки

Преобразование между кодировками требует: 1) Декодировать исходные байты в кодовые точки Unicode, используя исходную кодировку. 2) Кодировать кодовые точки в целевую кодировку. Проблемы: Несопоставимые символы (не все символы Unicode существуют в устаревших кодировках) - обрабатывать символом замены (�), HTML-сущностями или ошибкой. Нормализация: Unicode имеет множественные представления для одного символа (é может быть одной кодовой точкой U+00E9 или e + комбинирующий акцент), NFC нормализует в составную, NFD в разложенную. Обработка BOM: добавлять для UTF-16/32, опционально для UTF-8 (обычно опущено). Окончания строк: CRLF (Windows) vs LF (Unix) требуют отдельной обработки. Потоковое преобразование больших файлов обрабатывает фрагменты с декодерами с состоянием, поддерживающими контекст между фрагментами.

🐛Кракозябры и Исправления

Кракозябры (文字化け, искаженный текст) возникают из-за несоответствия кодировки: текст UTF-8, интерпретированный как Latin-1, показывает à вместо é, китайский показывает � или 中文. Распространенные причины: сервер отправляет UTF-8 без заголовка charset, редактор сохраняет с неправильной кодировкой, база данных хранит UTF-8 в столбце Latin-1. Исправления: 1) Перекодировать с правильной кодировкой: если текст UTF-8, но декодирован как Latin-1, перекодировать в байты Latin-1, затем декодировать как UTF-8. 2) Использовать библиотеку определения кодировки. 3) Проверить заголовки HTTP, мета-теги HTML, объявления XML. Предотвращение: Всегда использовать UTF-8 везде, явно объявлять кодировку, валидировать данные на границах. Библиотека Ftfy (Python) автоматически исправляет кракозябры, используя статистические паттерны.

Frequently Asked Questions

Насколько точно определение кодировки?

Детектор сочетает определение BOM, статистический анализ и проверку байтовых шаблонов для оценки наиболее вероятной кодировки. Каждый запуск также показывает оценку достоверности, чтобы вы знали, когда рекомендуется дополнительная ручная проверка.
💬

Могу ли я преобразовать текст после определения?

Да. После определения кодировки вы можете выбрать любую целевую кодировку, полностью преобразовать текст в браузере и загрузить или скопировать преобразованный вывод без загрузки файлов.
🔍

Что делает опция добавления или удаления BOM?

BOM (Byte Order Mark) — это необязательная подпись в начале файлов UTF. Добавление BOM помогает некоторым инструментам Windows определять кодировку, а её удаление делает файлы компактными для сред UNIX. Переключайте опцию в зависимости от того, где будет использоваться текст.
💡

Почему я все еще вижу искаженные символы после преобразования?

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

Загружается или сохраняется ли мой текст?

Нет. Определение и преобразование происходят полностью в вашем браузере. Файлы никогда не покидают ваше устройство, поэтому конфиденциальные документы остаются приватными.

💡Лучшие Практики

💡

Всегда Использовать UTF-8

Используйте кодировку UTF-8 везде по умолчанию - базы данных, файлы, HTTP заголовки, HTML мета-теги. UTF-8 универсальна, поддерживает все языки, обратно совместима с ASCII и является веб-стандартом. Явно объявляйте кодировку в HTML (<meta charset="UTF-8">) и HTTP заголовках (Content-Type: text/html; charset=utf-8). Это предотвращает кракозябры и обеспечивает последовательное отображение текста в разных системах.
🔍

Обнаруживать Перед Преобразованием

Всегда обнаруживайте кодировку перед попыткой преобразования, чтобы избежать повреждения данных. Используйте оценки уверенности из библиотек обнаружения для проверки точности. Для неоднозначных случаев (низкая уверенность) проверяйте образец текста вручную или пробуйте множественные кодировки с визуальной проверкой. Никогда не предполагайте кодировку исключительно на основе расширения файла или происхождения - всегда проверяйте.
📝

Правильно Обрабатывать BOM

Проверяйте BOM (Byte Order Mark) в начале файла для определенной идентификации кодировки. UTF-8 BOM (EF BB BF) опционален, но помогает с обнаружением. UTF-16/32 требует BOM для определения порядка байтов (LE/BE). Некоторые системы ожидают BOM, другие отклоняют его - знайте свою целевую систему. Удаляйте или добавляйте BOM по мере необходимости во время преобразования.
🩺

Тестировать Исправления Кракозябр

При исправлении искаженного текста идентифицируйте исходную и неправильно интерпретированную кодировки через анализ паттернов. Распространенные кракозябры: UTF-8 как Latin-1 (é вместо é), китайский как ? или случайные символы. Перекодируйте в промежуточную кодировку, затем декодируйте с правильной. Тестируйте исправления на образцах данных перед обработкой целых файлов. Некоторые кракозябры необратимы, если данные уже повреждены в базе данных.
⚠️

Валидировать на Границах

Валидируйте кодировку на границах системы - чтение файлов, HTTP запросы, запросы к базе данных, API вызовы. Используйте объявления charset во всех передачах данных. Очищайте и валидируйте входной текст для раннего обнаружения недопустимых последовательностей байтов. Логируйте проблемы кодировки для отладки. Реализуйте резервные стратегии для сбоев обнаружения кодировки. Никогда не смешивайте кодировки в одном файле или столбце базы данных.

🔗Связанные документы

User Comments

0 / 2000
Loading...