Книга: Программирование на языке Ruby
4.2.3. Распознавание кодировки
4.2.3. Распознавание кодировки
Распознать, в какой кодировке записана данная строка, довольно сложно. Многобайтовые кодировки обладают отличительными признаками, по которым их можно опознать, но с однобайтовыми — а именно они применяются в западных языках — дело обстоит куда хуже. Для решения можно применить статистические методы, но эта тема выходит за рамки данной книги (к тому же результат в общем случае получается не слишком надежным).
К счастью, обычно перед нами стоит более простая задача — выяснить, записана ли строка в кодировке UTF-8. На этот вопрос можно дать достаточно надёжный ответ. Приведем один способ (основанный на том, что метод unpack
возбуждает исключение, если ему передана некорректная строка):
class String
def utf8?
unpack('U*') rescue return false
true
end
end
- 4.2. Кодировки в пост-ASCII мире
- Текстовые форматы и кодировки, или Почему иногда вместо текста я вижу абракадабру?
- Распознавание нажатий клавиш
- Преобразование символов из кодировки ASCII в Unicode
- Распознавание речи
- ДВУХБАЙТОВЫЕ КОДИРОВКИ
- Распознавание вида компонент
- Кодировки в XSLT-преобразованиях
- 4.2.6. Преобразование из одной кодировки в другую
- 4.4.4. Проблема с распознаванием текста
- Поддержка кодировки UNICODE
- Рис. 206. Изменение кодировки.