Определение кодировки текста


Содержание

Универсальный декодер кириллицы

Результат

[Результат перекодировки появится здесь. ]

О программе

Здравствуйте! Эта страница может пригодиться, если вам прислали текст (предположительно на кириллице), который отображается в виде странной комбинации загадочных символов. Программа попытается угадать кодировку, а если не получится, покажет примеры всех комбинаций кодировок, чтобы вы могли выбрать подходящую.

Использование

  • Скопируйте текст в большое текстовое поле дешифратора. Несколько первых слов будут проанализированы, поэтому желательно, чтобы в них содержалась (закодированная) кириллица.
  • В выпадающем списке "Текст выглядт так" выберете пункт, наиболее похожий на ваш текст. Предложенные варианты включают типичные комбинации проблемных кодировок.
  • Если выбрать подходящий вариант затруднительно, нажмите кнопку пункта "Испробовать все комбинации".
  • Программа попытается декодировать текст и выведет результат в нижнее поле.
  • В случае удачной перекодировки вы увидете текст на кириллице, который можно при необходимости скопировать и сохранить.
  • В случае неудачной перекодировки (текст не на кириллице, состоящий из тех же или других нечитаемых символов) можно выбрать из нового выпадающего списка вариант на кириллице (если их несколько, выбирайте самый длинный). Нажав OK вы получите корректный перекодированный текст.
  • Если тект перекодирован лишь частично, попробуйте выбрать другие варианты кириллицы из выпадающего списка.

Ограничения

  • If your text contains question marks ". ?? . ", the problem is with the sender and no recovery will be possible. Ask them to resend the text, eventually as an ordinary text file.
  • Не любой текст может быть гарантированно декодирован, даже если есть вы уверены на 100%, что он написан на кириллице.
  • Анализируемый и декодированный тексты ограничены размером в 20 Кб.
  • Программа не всегда дает стопроцентную точность: при перекодировке из одной кодовой страницы в другую могут пропасть некоторые символы, такие как болгарские кавычки, реже отдельные буквы и т.п.
  • Программа проверяет максимум 4725 вариантов из двух и трех перекодировок: если имело место многократное перекодирование вроде koi8(utf(cp1251(utf))), оно не будет распознано или проверено. Обычно возможные и отображаемые верные варианты находятся между 32 и 255.
  • Если части текста закодированы в разных кодировках, программа сможет распознать только одну часть за раз.

Условия использования

Пожалуйста, обратите внимание на то, что данная бесплатная программа создана с надеждой, что она будет полезна, но без каких-либо явных или косвенных гарантий пригодности для любого практического использования. Вы можете пользоваться ей на свой страх и риск.

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

Определение кодировки текста

Кодирование текстовой информации

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

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

Начиная с конца 60-х годов, компьютеры все больше стали использоваться для обработки текстовой информации, и в настоящее время основная доля персональных компьютеров в мире (и большая часть времени) занята обработкой именно текстовой информации. Все эти виды информации в компьютере представлены в двоичном коде, т. е. используется алфавит мощностью два (всего два символа 0 и 1). Связано это с тем, что удобно представлять информацию в виде последовательности электрических импульсов: импульс отсутствует (0), импульс есть (1).

Такое кодирование принято называть двоичным, а сами логические последовательности нулей и единиц - машинным языком.

С точки зрения ЭВМ текст состоит из отдельных символов. К числу символов принадлежат не только буквы (заглавные или строчные, латинские или русские), но и цифры, знаки препинания, спецсимволы типа "=", "(", "&" и т.п. и даже (обратите особое внимание!) пробелы между словами.

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

Кодирование заключается в том, что каждому символу ставится в соответствие уникальный десятичный код от 0 до 255 или соответствующий ему двоичный код от 00000000 до 11111111. Таким образом, человек различает символы по их начертанию, а компьютер - по их коду.

Удобство побайтового кодирования символов очевидно, поскольку байт - наименьшая адресуемая часть памяти и, следовательно, процессор может обратиться к каждому символу отдельно, выполняя обработку текста. С другой стороны, 256 символов – это вполне достаточное количество для представления самой разнообразной символьной информации.

В процессе вывода символа на экран компьютера произ­водится обратный процесс — декодирование, то есть преоб­разование кода символа в его изображение. Важно, что присвоение символу конкретного кода — это вопрос соглашения, которое фиксируется в кодовой табли­це.

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

Все символы компьютерного алфавита пронумерованы от 0 до 255. Каждому номеру соответствует восьмиразрядный двоичный код от 00000000 до 11111111. Этот код просто порядковый номер символа в двоичной системе счисления.

Виды таблиц кодировок

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

Для разных типов ЭВМ используются различные таблицы кодировки.

В качестве международного стандарта принята кодовая таблица ASCII (American Standard Code for Information Interchange - Американский стандартный код для информационного обмена), кодирующая первую половину символов с числовыми кодами от 0 до 127 ( коды от 0 до 32 отведены не символам, а функциональным клавишам).

Таблица кодов ASCII делится на две части.

Международным стандартом является лишь первая половина таблицы, т.е. символы с номерами от 0 (00000000), до 127 (01111111).

Структура таблицы кодировки ASCII

Символы с номерами от 0 до 31 принято называть управляющими.

Их функция – управление процессом вывода текста на экран или печать, подача звукового сигнала, разметка текста и т.п.

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

Символ 32 - пробел, т.е. пустая позиция в тексте.

Все остальные отражаются определенными знаками.

Альтернативная часть таблицы (русская).

Вторая половина кодовой таблицы ASCII, называемая кодовой страницей (128 кодов, начиная с 10000000 и кончая 11111111), может иметь различные варианты, каждый вариант имеет свой номер.

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

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

Для букв русского алфавита также соблюдается принцип последовательного кодирования.

К сожалению, в настоящее время существуют пять различных кодировок кириллицы (КОИ8-Р, Windows. MS-DOS, Macintosh и ISO). Из-за этого часто возникают проблемы с переносом русского текста с одного компьютера на другой, из одной программной системы в другую.

Хронологически одним из первых стандартов кодирования русских букв на компьютерах был КОИ8 ("Код обмена информацией, 8-битный"). Эта кодировка применялась еще в 70-е годы на компьютерах серии ЕС ЭВМ, а с середины 80-х стала использоваться в первых русифицированных версиях операционной системы UNIX.

От начала 90-х годов, времени господства операционной системы MS DOS, остается кодировка CP866 ("CP" означает "Code Page", "кодовая страница").

Компьютеры фирмы Apple, работающие под управлением операционной системы Mac OS, используют свою собственную кодировку Mac.

Кроме того, Международная организация по стандартизации (International Standards Organization, ISO) утвердила в качестве стандарта для русского языка еще одну кодировку под названием ISO 8859-5.

Наиболее распространенной в настоящее время является кодировка Microsoft Windows, обозначаемая сокращением CP1251. Введена компанией Microsoft; с учетом широкого распространения операционных систем (ОС) и других программных продуктов этой компании в Российской Федерации она нашла широкое распространение.

С конца 90-х годов проблема стандартизации символьного кодирования решается введением нового международного стандарта, который называется Unicode.

Это 16-разрядная кодировка, т.е. в ней на каждый символ отводится 2 байта памяти. Конечно, при этом объем занимаемой памяти увеличивается в 2 раза. Но зато такая кодовая таблица допускает включение до 65536 символов. Полная спецификация стандарта Unicode включает в себя все существующие, вымершие и искусственно созданные алфавиты мира, а также множество математических, музыкальных, химических и прочих символов.

Внутреннее представление слов в памяти компьютера

с помощью таблицы ASCII

Иногда бывает так, что текст, состоящий из букв русского алфавита, полученный с другого компьютера, невозможно прочитать - на экране монитора видна какая-то "абракадабра". Это происходит оттого, что на компьютерах применяется разная кодировка символов русского языка.

Таким образом, каждая кодировка задается своей собственной кодовой таблицей. Как видно из таблицы, одному и тому же двоичному коду в различных кодировках поставлены в соответствие различные символы.

Н апример, последовательность числовых кодов 221, 194, 204 в кодировке СР1251 образует слово «ЭВМ» (Рис. 10), тогда как в других кодировках это будет бессмысленный набор символов.

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

Работа с текстом. Как определить кодировку файла

Давайте узнаем, что такое кодировка файла. Говоря проще, кодировкой считается набор байтовых символов, который соответствует буквенному алфавиту в определенном языке. Для каждого языка существует своя определенная последовательность таких знаков кодирования. Иногда возникает потребность определить кодировку. Рассмотрим это на примере текстового документа.

Что нужно

Набор определенных программных средств. Для начала достаточно приложений типа Word, KWrite, браузера Firefox и средства распознавания – enca.

Илон Маск рекомендует:  Что такое код hw_api >info

Определить кодировку файла можно при помощи универсального редактора Microsoft Word. Прежде, его нужно проинсталлировать из пакета Office. Когда приложение будет установлено, и сможет открываться с помощью иконки в виде символа W на рабочем столе, переходим к следующему шагу.

Следующий этап распознавания

Через навигационную панель приложения по очереди откройте пункты «Файл» - «открыть». То же самое можно сделать, задействовав комбинацию клавиатуры Ctrl+O.

Затем в диалоговом окне выберите нужный каталог и, собственно, файл для чтения. Выделив его мышью, нажмите кнопку «открытие».

Когда у файла набор соответствий не CP1251, приложение пытается самостоятельно определить кодировку. Будет выведен список возможных соответствий. В предложенных наборах символов в правой части списка выберите одну из кодировок. Если выбор сделан правильно, в элементе «образец» отобразится распознанный текст.

Как определить кодировку посредством KWrite

Кроме препроцессора для обработки текста, Word, существуют и другие функциональные утилиты. Одна из них - KWrite (аналог для unix-систем). Чтобы вы не путались, распишу по пунктам задачу «определить кодировку документа в KWrite».

  1. Загрузка в приложение файла с расширением .txt.
  2. Перебор кодировок до тех пор, пока одна из них не окажется подходящей.
  3. Чтобы выполнить пункт 2, перейдите к опции tools в меню encoding.

Браузер Mozilla Firefox, цель та же – определить кодировку

Принцип примерно тот же, что и в утилитах для работы с текстом. Запускаем проинсталлированный браузер на выполнение, а если он не установлен – скачиваем инсталлятор с mozilla.org.

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

Для этого перейдите на «Вид» - «кодировка », там отображено несколько наборов символов, а тот из них, напротив которого стоит «галочка», и есть определенная браузером кодировка.

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

Специализированное ПО – работаем с enca

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

Для тех, кто привык работать под unix, подойдет утилита enca. Ее можно установить при помощи сервиса «Диспетчер пакетов». Найдя доступную категорию пакетов, можно приступить к установке программного обеспечения.

Чтобы вывести листинг языков распознавания, выполните команду enca --list languages, используя терминал.

Если нужно определить кодировку текстового файла после ключа (g), введите его название, а после опции (L) примерно таким же образом введите язык распознавания:

enca -L russian -g /home/vic/temp/myfile.txt.

Подытожим сказанное о кодировке

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

Пока, собственно, это всё о том, как распознать кодировку. Для стандартных целей, думаю, указанное программное обеспечение вполне подойдет. Есть и более специализированные методы определения, но их рассмотрение выходит за рамки этой статьи.

Для программы Microsoft Word источником распознавания может быть как простой текст, так и документ со сложным форматированием.

Кодирование текстовой информации

Для кодирования символьной или текстовой информации применяются различные системы: при вводе информации с клавиатуры кодирование происходит при нажатии клавиши, на которой изображен требуемый символ, при этом в клавиатуре вырабатывается так называемый scan-код, представляющий собой двоичное число, равное порядковому номеру клавиши.


3.1 Кодировка ASCII

Всего существует множество кодировочных таблиц. Рассмотрим сначала кодировочную таблицу ASCII (ASCII - American Standard Code for Information Interchange - Американский стандартный код для обмена информацией). Эта кодировка является наиболее известной. На практике обычно не бывает проблем с кодированием англоязычных текстов, поскольку первая половина кодировки стандартизована, но, к сожалению, для кодировки русских букв существует несколько кодировочных таблиц, что иногда создает проблемы при работе с текстами.

Для кодировки одного символа из таблицы отводится 8 бит. При обработке текстовой информации один байт может содержать код некоторого символа - буквы, цифры, знака пунктуации, знака действия и т.д. Каждому символу соответствует свой код в виде целого числа. Один байт как набор восьми битов позволяет закодировать 256 символов, что вполне достаточно для работы сразу с двумя обычными языками, например английским и русским. При этом все коды собираются в специальные таблицы, называемые кодировочными. С их помощью производится преобразование кода символа в его видимое представление на экране монитора. В результате любой текст в памяти компьютера представляется как последовательность байтов с кодами символов.

Таблица кодировки текстовой информации ASCII.

Первая половина таблицы ASCII стандартизована. Она содержит управляющие коды (от 0 до 31. Эти коды из таблицы изъяты, так как они не относятся к текстовым элементам. Вторая половина таблицы содержит национальные шрифты, символы псевдографики, из которых могут быть построены таблицы, специальные математические знаки. Нижнюю часть таблицы кодировок можно заменять, используя соответствующие драйверы - управляющие вспомогательные программы. Этот прием позволяет применять несколько шрифтов и их гарнитур. Невозможно использовать символы различных наборов кодировок в одном и том же документе. Так как каждый текстовый документ использует свой собственный набор кодировок, то возникают большие трудности с автоматическим распознаванием текста. Появляются новые символы (например:Евро), вследствие чего ISO разрабатывает новый стандарт ISO-8859-15, который весьма схож со стандартом ISO-8859-1. Разница состоит в следующем: из таблицы кодировки старого стандарта ISO-8859-1 были убраны символы обозначения старых валют, которые не используются в настоящее время, для того, чтобы освободить место под вновь появившиеся символы (такие, как Евро). В результате у пользователей на дисках могут лежать одни и те же документы, но в разных кодировках. Решением этих проблем является принятие единого международного набора кодировок, который называется универсальным кодированием или Unicode.

Данная кодировка решает пользовательские проблемы (см. выше), но создает новые, технические проблемы: как пересылать символы в формате Unicode, используя 8-битные байты? 8-битные единицы являются наименьшими передаваемыми единицами в большинстве компьютеров, а также являющимися минимальными единицами, используемыми при сетевых соединениях на основе протокола TCP/IP. Использование 1-го байта для представления 1-го символа стало эпизодом истории (факт появления такой кодировки обусловлен тем, что компьютеры зародились в Европе и США, где долгое время обходились 96 символами).

Существует 4 основных способа кодировки байтами в формате Unicode:

UTF-8: 128 символов кодируются одним байтом (формат ASCII), 1920 символов кодируются 2-мя байтами ((Roman, Greek, Cyrillic, Coptic, Armenian, Hebrew, Arabic символы), 63488 символов кодируются 3-мя байтами (Китайский, японский и др.) Оставшиеся 2 147 418 112 символы (еще не использованы) могут быть закодированы 4, 5 или 6-ю байтами.

UCS-2: Каждый символ представлен 2-мя байтами. Данная кодировка включает лишь первые 65 535 символов из формата Unicode.

UTF-16:Является расширением UCS-2, включает 1 114 112 символов формата Unicode. Первые 65 535 символов представлены 2-мя байтами, остальные - 4-мя байтами.

USC-4: Каждый символ кодируется 4-мя байтами.

Получается, что 8 бит используются для кодирования европейских языков, а для китайского, японского и корейского языков много больше. Это может повлиять на объем занимаемого дискового пространства и на скорость передачи по сети. Для основных кодировок картина следующая (K(%) - увеличение дискового пространства и снижение скорости передачи по сети):

UTF-8: никаких изменений для американской ASCII, незначительное ухудшение (К = несколько %) для ISO-8859-1, К=50% для китайского, японского, корейского и К=100% для греческого и кириллицы.

UCS-2 и UTF-16: никаких изменений для китайского, японского, корейского; К=100% для американской ASCII, ISO-8859-1, греческого и кириллицы.

UCS-4: К=100% для китайского, японского, корейского; К=300% для американской ASCII, ISO-8859-1, греческого и кириллицы.

В итоге получается, что UTF-8 кодировка занимает меньше дискового пространства и позволяется передавать данные по сети с большей скоростью [10].Unicode 3.0

Стандарт Unicode был разработан с целью создания единой кодировки символов всех современных и многих древних письменных языков. Каждый символ в этом стандарте кодируется 16 битами, что позволяет ему охватить несравненно большее количество символов, чем принятые ранее 7- и 8-битовые кодировки. Еще одним важным отличием Unicode от других систем кодировки является то, что он не только приписывает каждому символу уникальный код, но и определяет различные характеристики этого символа, например:

тип символа (прописная буква, строчная буква, цифра, знак препинания и т.д.);

атрибуты символа (отображение слева направо или справа налево, пробел, разрыв строки и т.д.);

соответствующая прописная или строчная буква (для строчных и прописных букв соответственно);

соответствующее числовое значение (для цифровых символов).

Весь диапазон кодов от 0 до FFFF разбит на несколько стандартных подмножеств, каждое из которых соответствует либо алфавиту какого-то языка, либо группе специальных символов, сходных по своим функциям. На приведенной ниже схеме содержится общий перечень подмножеств Unicode 3.0

Формат UTF-8: Стандарт Unicode является основой для хранения и текста во многих современных компьютерных системах. Однако, он не совместим с большинством Интернет-протоколов, поскольку его коды могут содержать любые байтовые значения, а протоколы обычно используют байты 00 - 1F и FE - FF в качестве служебных. Для достижения совместимости были разработаны несколько форматов преобразования Unicode (UTFs, Unicode Transformation Formats), из которых на сегодня наиболее распространенным является UTF-8. Этот формат определяет следующие правила преобразования каждого кода Unicode в набор байтов (от одного до трех), пригодных для транспортировки Интернет-протоколами.Таблица 2. Формат UTF-8.

Диапазон Unicode Двоичный код символа Байты UTF-8 (двоичные)

0000 - 007F 00000000 0zzzzzzz 0zzzzzzzz

0080 - 07FF 00000yyy yyzzzzzz 110yyyyy 10zzzzzz

0800 – FFFF xxxxyyyy yyzzzzzz 1110xxxx 10yyyyyy 10zzzzzz

Здесь x,y,z обозначают биты исходного кода, которые должны извлекаться, начиная с младшего, и заноситься в байты результата справа налево, пока не будут заполнены все указанные позиции.Формат UTF-16: Дальнейшее развитие стандарта Unicode связано с добавлением новых языковых плоскостей, т.е. символов в диапазонах 10000 - 1FFFF, 20000 - 2FFFF и т.д., куда предполагается включать кодировку для письменностей мертвых языков, не попавших в таблицу, приведенную выше. Для кодирования этих дополнительных символов был разработан новый формат UTF-16. Для базовой языковой плоскости, т.е. для символов с кодами от 0000 до FFFF, он совпадает с Unicode. Поэтому, если вы не собираетесь писать Веб-страницы на языке шумеров или майя, можете смело отождествлять два эти формата.

Файл. Форматы файлов

Файл – наименьшая единица хранения информации, содержащая последовательность байтов и имеющая уникальное имя.

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

Файловая структура представляет собой систему хранения файлов на запоминающем устройстве, например, на диске. Файлы организованы в каталоги (иногда называемые директориями или папками). Любой каталог может содержать произвольное число подкаталогов, в каждом из которых могут храниться файлы и другие каталоги.

Способ, которым данные организованы в байты, называется форматом файла.

Илон Маск рекомендует:  Другие языки

Для того чтобы прочесть файл, например, электронной таблицы, нужно знать, каким образом байты представляют числа (формулы, текст) в каждой ячейке; чтобы прочесть файл текстового редактора, надо знать, какие байты представляют символы, а какие шрифты или поля, а также другую информацию. Все файлы условно можно разделить на две части – текстовые и двоичные. Текстовые файлы – наиболее распространенный тип данных в компьютерном мире. Для хранения каждого символа чаще всего отводится один байт, а кодирование текстовых файлов выполняется с помощью специальных таблиц, в которых каждому символу соответствует определенное число, не превышающее 255. Файл, для кодировки которого используется только 127 первых чисел, называется ASCII-файлом (сокращение от American Standard Code for Information Intercange – американский стандартный код для обмена информацией), но в таком файле не могут быть представлены буквы, отличные от латиницы (в том числе и русские). Большинство национальных алфавитов можно закодировать с помощью восьмибитной таблицы. Для русского языка наиболее популярны на данный момент три кодировки: Koi8-R, Windows-1251 и, так называемая, альтернативная (alt) кодировка.

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

Двоичные файлы, в отличие от текстовых, не так просто просмотреть, и в них, обычно, нет знакомых слов – лишь множество непонятных символов. Эти файлы не предназначены непосредственно для чтения человеком. Примерами двоичных файлов являются исполняемые программы и файлы с графическими изображениями.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Только сон приблежает студента к концу лекции. А чужой храп его отдаляет. 8806 - | 7523 - или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

FAQ: Как проверить кодировку в текстовом файле?

Программный комплекс SocialKit корректно работает с кириллицей в текстовых файлах, кодировка которых соответствует стандарту Windows-1251 (кратко может быть записано как CP1251 или ANSI). В этой связи в задачах, поддерживающих указание внешнего файла с перечнем комментариев, сообщений, описаний и прочей информации, которая может содержать кириллицу, нужно указывать текстовые файлы, где русский текст задан в кодировке по стандарту Windows-1251 или же просто ANSI, или CP1251 - всё это, по сути, одно и то же.

Учитывая, что многие инструменты по работе с текстом не отображают, в какой именно кодировке задан текст в текстовом файле и/или не поддерживают преобразование кодировок, то у новичков часто возникает вопрос о том, как именно привести кодировку текстового файла с русским текстом к понятному для SocialKit формату CP1251.

Следует сразу отметить, что большинство текстовых редакторов для ОС Windows (например, встроенный Блокнот и Wordpad) по умолчанию создают текстовые файлы именно с кодировкой по стандарту Windows-1251. Однако, эта кодировка по умолчанию может быть изменена в следствие тех или иных действий.

Если вы не уверены в том, в какой именно кодировке задан текст, то проще всего этот текст пересохранить через стандартный Блокнот Windows. При пересохранении Блокнот также покажет, в каком формате текст сейчас.

Опишем эту простую процедуру по шагам.

1. Открыть искомый текстовый файл в Блокноте Windows и выбрать пункт меню "Файл" -> "Сохранить как. ".

Пример текстового файла, в котором русский текст задан в формате UTF, но это не очевидно при открытии.

2. В открывшемся диалоговом окне вы сразу видите, в какой кодировке был сохранён текст в текстовом файле.

Диалоговое окно пересохранения текстового файла, в котором можно сразу изменить кодировку.

Как видно, в примере текст в текстовом файле был ранее сохранён в кодировке UTF-8. Для изменения кодировке достаточно выбрать в выпадающем списке кодировку ANSI и нажать кнопку "Сохранить".

При этом зрительно для вас ничего не изменится, но многое изменится для программы и алгоритмов, занимающихся обработкой текста в процессе отправки. Корректно Instagram'у будет отправлен только ANSI-текст.

Кодировка текста.

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

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

Другими словами, от этого параметра зависит корректное отображение веб-страниц. Самое время ответить на вопрос о том, что такое кодировка текста. Её также называют набором символов. Кодировкой является специальная стандартизованная таблица, которая задаёт соответствие между кодом и символом, который он обозначает. Код представлен нулями и единицами, т.е., битами, и любая кодировка содержит конечный набор символов. Количество бит (байт), которое задаёт код, а также набор конкретных символов — это основные параметры кодировок.

В чем суть кодировок текста.

Различные наборы символов сложились исторически и вследствие естественного развития компьютерной техники за последний полувек. Кодировка текста ASCII — один из первых наборов, разработанный в 1963 году и используемый до сих пор. Первоначально таблица содержала всего 128 символов, среди которых были буквы латинского алфавита, цифры и специальные символы. В дальнейшем это число было расширено до 256 — это позволило использовать буквы национальных алфавитов, в том числе и русского. Однако порядок и способ указания подобных символов не был регламентирован, что породило несколько несовместимых между собой кодировок: Windows-1251, КОИ-8. Помимо указанных кодировок, существовали также несовместимые (не-ASCII) варианты — например, CP866.

Стандарт Unicode (Юникод) был разработан для решения этих проблем. На нём основаны наборы символов UTF-8, UTF-16, UTF-32, самым популярным из которых является UTF-8. Обычно его и применяют для вёрстки современных web-страниц; на нём также основана работа большинства систем, таких как WordPress и Joomla. Кодировка текста UTF-8 поддерживает множество специальных символов (например, диакритические знаки и псевдографику), иероглифы и т.д. На сегодняшний день Юникод — самая универсальная кодировка текста.

Установка кодировки происходит на этапе сохранения файла. Веб-мастерам необходимо уметь работать с кодировками для обеспечения корректной работы своих сайтов. Например, если php-файл сохранён в одном наборе символов, а в заголовке (

) html-страницы указан другой — то это вызовет искажение текстовой информации. Важно также обращать внимание и на кодировку базы данных.

Лучшие сервисы, чтобы раскодировать текст online

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

Универсальный декодер

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

Если вы хотите, чтобы ресурс автоматически смог раскодировать, придется отметить это в списке выбора. Но можно выполнять и ручную настройку, указав выбранный тип. Итоги можете найти в разделе «Результат». Вот только тут есть определенные ограничения. К примеру, если в поле вставить отрывок более 100 Кб, софт не обработает его, так что нужно будет выбирать кусочки.

Как раскодировать текст онлайн с помощью Fox Tools

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

Декодер Артемия Лебедева

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

Translit.net

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

Программа Штирлиц

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

Пользуемся стандартным Word

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

В разделе «Общие» установите галочку в спецнастройке «Подтверждать преобразование формата». Соглашаетесь с изменениями, закрываете прогу, а потом опять открываете файл. В окошке «Преобразование» выбираете «Кодированный текст». Ищите свой вариант.

Определение кодировки

Есть несколько способов определения:

  • В Ворде во время открытия документа: если есть отличия от СР1251, редактор предлагает выбирать одну из самых подходящих кодировок. Оценить, насколько они аналогичны, можно по превью текстового образца;
  • В утилите KWrite. Сюда загружаете объект с расширением .txt и используете настройки в меню «Кодирование»;
  • Открываете объект в обозревателе Mozilla Firefox. При правильном отображении в разделе «Вид» ищите кодировку. Нужный вариант – тот, возле которого установлен флажок. Если все отображается с ошибками, проверяете различные варианты в меню «Дополнительно»;
  • Пользователи Unix могут воспользоваться приложением Enca.

С помощью предложенных инструментов вы можете быстро и легко раскодировать текст онлайн. Если у вас мало знаний, воспользуйтесь утилитами с простым меню и функционалом.

Декодер кириллицы

Пояснения

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

Илон Маск рекомендует:  Примеры использования объектной модели в PHP. DOM

Скопируйте интересующий вас участок текста и вставьте в верхнюю форму на этой странице. Далее попробуйте воспользоваться кнопкой «Декодировать автоматически», как правило, этого достаточно, чтобы увидеть в форме ниже исходный текст. Если же полученный вариант по-прежнему невозможно прочитать, нужно поискать доступные варианты в выпадающем списке "Выберите наилучший вариант из списка:" над нижним окном. Если же и это не помогло используйте шанс «Декодировать вручную» перебирая все доступные варианты кодировок.

К сожалению, в данной версии декодера не удалось компенсировать потери при декодировании некоторых некириллических таблиц. В таких случаях вы будете видеть пробелы в словах или спецсимволы вместо одной (двух) кириллических букв. В дальнейшем мы постараемся исправить это.

Кроме того, вы должны понимать, что существуют варианты, когда обратное кодирование (декодирование) попросту невозможно. Утерянные символы в ваших текстах отображаются как пустые ячейки или знаки вопроса (бывают и другие варианты, в зависимости от вашего программного обеспечения). Например, когда однобайтовую кодировку (KOI8-R, Windows-1251, etc) открывают как UTF8, практически весь текст превращается в невосстановимый набор нечитаемых символов.

Code Extractor

среда, 11 июля 2012 г.

Определение кодировки текста в PHP и Python

В очередном проекте, понадобилось мне определить кодировку текста, который возвращался в виде XML. Для определения кодировки я уже достаточно давно использовал очень простую функцию, которую сам и написал. Но по воли случая, её не оказалось под рукой. И какой бы функция простой не была, хоть и знал общий принцип её работы, писать её заново мне совершенно не хотелось. Да, обленился я в край, тут уж ничего не поделаешь. И так как ждать мне не хотелось ещё больше, чем переписывать, я, понятное дело, побежал спрашивать Google, чем он мне может помочь.
Чего я только не нашел в его предложениях! Кто-то мистическим образом пытается определить кодировку через preg_match, ограничиваясь кодировкой UTF-8. Кто-то в разных кодировках "парсит" тома "Война и мир" на двубуквенные совпадения, получая на выходе достаточно массивные файлы, при чем для каждой кодировки - собственный. Кто-то даже добрался до исходников mbstring, так как в какой-то кодировке он возвращал не верный результат! Меня хватил шок от увиденного! Я понял одно, что из найденных вариантов, подобную "залипуху" в свой код я пихать не собираюсь, поэтому решение отложил на следующий день. К тому же, мне по проекту это требовалось для отладочной информации: мог спокойно потерпеть и смотреть на возвращающиеся "зюки" и вопросики. Однако, мысли о том, что нужно поделиться с народом как простым способом определить кодировку без подключения сторонних библиотек, меня подтолкнули на написание данной статьи.

Идея - Лотерея

Саму идею получения кодировки придумал не я, но и автора, к сожалению, сообщить сейчас уже не могу, так как это было порядка 4 лет назад и откуда я взял эту информацию - уже давно забылось. Автор предложил вариант определения и показал пример для 1-2 кодировок на языке Python. Простота его решения не оставила меня в стороне, и я развил её до желаемого результата.
Суть идеи заключается в самих кодовых таблицах кодировок. Как известно, любая кодировка содержит свою кодовую таблицу и для каждого символа кодировки присвоено определенное значение. Таблицы кодировок я здесь показывать не буду, сейчас их найти в интернете достаточно просто.
Принцип реализации следующий:

  1. Создается переменная-массив для хранения результата "анализа" проверенного текста. Каждый элемент массива будет содержать результат для конкретной кодировки.
  2. Полученный на вход функции текст перебирается по символьно.
  3. От каждого символа берется ординал (значение этого символа) и сравнивается с диапазоном кодировки.
  4. Если значение выпадает на прописной (заглавный) символ, элементу массива, который хранит результат этой кодировки, прибавляется значение 1.
  5. Если значение выпадает на строчный (маленький) символ, элементу массива, который хранит результат этой кодировки, прибавляется значение 3.
  6. Та кодировка, точнее, тот элемент массива, который хранит результат о своей кодировке, который набрал больше всего баллов - вероятней всего и является исходной кодировкой.

Такой алгоритм справедлив для однобайтовых кодировок, таких как KOI-8, CP1251 (windows-1251) и других. Однако, для двухбайтовых кодировок (в моем случае UTF-8), такой подход выдаст ошибочный результат. Для начала я попытался решить этот вопрос путем прибавления для прописных символов - 5, для строчных - 7. Результат стал лучше, однако все равно ошибки распознавания присутствовали. После недолгих экспериментов, я вывел, что для верного определения UTF, при прописных символах должно прибавляться к результату 10, для строчных 14, то есть в 2 раза больше начального моего предположения. Тем не менее, для лучшего визуального понимания кода я для символов UTF оставил 5 и 7 соответственно и уже во время проверки эти значения увеличивал на 2 и прибавлял к результату.
Вот в принципе и весь алгоритм. И без всяких лишних заморочек.
Больше всего времени на реализацию этой функции у меня убилось конечно же на поиск кодовых таблиц и правильной расстановки диапазонов. Мало того, что на тот момент, когда я первый раз писал эту функцию, найти актуальную кодовую таблицу было достаточно трудно, так ещё диапазоны символов в них скачут как попало. Тем не менее, я тогда остановился на самых актуальных (и по сей день) кодировках: UTF-8, CP1251, KOI8-R, IBM866, ISO-8859-5 и MAC. Если вам недостаточно этих кодировок, вы можете на основе данного алгоритма дополнить код.

От слов к практике

Собственно, весь код функции на Python выглядит следующим образом:

Пример вызова функции

А что же на счет PHP

Переписать уже готовую функцию из Python в PHP не составило никакого труда. По своему виду он практически ничем не отличается от его прородителя на Python:

Пример вызова функции

ЛикБез, или Не мешайте машине работать

Не стоит пытаться устраивать crash-test для этой функции. Из алгоритма понятно, что чем меньше текста ей придет на вход, тем больше вероятности, что функция распознает кодировку не верно. С другой стороны, скармливать тома Льва Толстого тоже не имеет смысла: данный метод прекрасно справляется с небольшим предложением в 100-200 символов. И хоть я в примерах вызова на вход отправлял все содержимое некоего файла "test.txt", в котором предполагалось, что находится текст, кодировку которого нужно определить, на вход функции можно (и нужно) передавать небольшой участок текста.
Извращения с перемешанными прописными и строчными буквами вообще считаю не уместными в данном случае, так как этот метод писался для обычной заурядной задачи с приближенно грамотным русским языком. А такие эксперименты мне чаще всего напоминают анекдот:

Так что для подобных извращенных тестов вам скорее всего понадобится извращенный алгоритм, каким данная функция не является. А из практики скажу, что за время использования в течении 4 лет, данный метод меня ни разу не подвел и всегда давал верный результат.
Надеюсь моя статья станет кому то полезной.
Спасибо за внимание.

При использовании всего или части содержимого, не забывайте указывать ссылку на источник, то есть на мой блог.

Как компьютеры кодируют наш язык

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

Системы кодировок бывают разные. Иногда сайт или текстовая программа неправильно определяют кодировку. Тогда вместо текста мы видим непонятный набор символов.

Чтобы превратить их в читабельный текст, нужно подобрать правильную кодировку. Проще всего сделать это онлайн. На сайте любого декодера нужно только вставить испорченный текст. Декодер сам подберет нужную кодировку и решит проблему.

Кодировка из девяностых

Самый распространённый и широко охватывающий большинство языков стандарт кодировки текста — unicode. В далёком 1991-м году он был предложен как способный вместить в себе любой символ, от иероглифов до специальных знаков музыкальной нотации. Теперь это самая популярная система кодирования текста в интернете. Сохраняя текст в этом стандарте вы скорее всего избежите проблем с декодированием.

Закодировать текст легко

Кодировку текста легко задать почти во всех текстовых редакторах, даже в блокноте. В меню «файл», в разделе кодировки выбирайте подходящую для вас. После чего весь набранный текст будет сохраняться с заданным параметром. Если такого пункта меню вашего блокнота нет, кодировку можно установить при сохранении. Нужно нажать «сохранить как», появится окошко, где выбирается название, тип файла и кодировка.

В более продвинутых текстовых редакторах менять кодировку так же легко. В программе word задать кодировку можно при сохранении. Для этого в меню «файл» (или «ms office» в новых версиях) нужно выбрать пункт «сохранить как…». Теперь нужно вписать название, выбрать тип файла «обычный текст» и нажать кнопку «сохранить». Появится окно, где можно будет выбрать нужную кодировку.

Иногда некорректно отображается текст в excel файлах. Чтобы исправить это, нужно открыть саму программу, выбрать там вкладку «данные» и для получения внешних данных выбрать пункт «из текста». В открывшемся окне отыскиваем наш проблемный файл, выделяем и жмём кнопку «импорт». Теперь для этого файла можно подобрать кодировку, визуально контролируя процесс в окне предварительного просмотра. После останется только сохранить.

Закодированные тексты на ваших сайтах

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

Браузер воспринимает текст сайта тоже через кодировку. Если она будет неправильно подобрана, вместо текста будут вопросы или непонятные знаки. Кодировка задается в head, в теге. В кавычках может быть любой стандарт, но utf-8 самый распространенный из них. Поэтому для своих русскоязычных проектов используйте её. Тогда ваши сайты будут корректно отображаться в любом браузере.

Чтобы детальнее разобраться с особенностями кодировки для вашего сайта, смотрите видеоуроки. В них наглядно разбираются вероятные проблемы и их решения. На портале у Михаила Русакова есть целый ряд таких уроков. Там можно найти ответы на множество вопросов по верстке сайтов.

А то, что уже умеете, сможете делать качественнее и быстрее, учась у профессионалов. Все уроки вы сможете сохранить в компьютере, просматривая при необходимости снова.

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

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL