Форум сайта python.su
Имеется задача: перекодировать файл, содержимое которого в неизвестной кодировке, в другой файл, кодировка которого должна быть UTF-8. Помогите, плиз, разобраться с этой задачкой, а то у меня уже совсем голова пухнет - ниче не получается…
Офлайн
Офлайн
> содержимое которого в неизвестной кодировке
Тебе по каким то признакам нужно идентифицировать эту кодировку.
Можно решить задачу в лоб. Используя некоторое конечное число кодировок (utf-8, koi8-r, cp1251 и т.д.) декодировать исходный текст. Если не возникло ошибок (исключение UnicodeDecodeError) проанализировать текст на наличие, скажем, частоупотребляемых слов.
..bw
Офлайн
модуль - есть такой =)
http://chardet.feedparser.org/
Определяет кодировку. Весьма успешно юзаю.
Будут вопросы по использованию - задавай.
Офлайн
shiza, +1
Ps думаю вопросов не будет - там всё очень просто
Офлайн
pythonwinДа, все предельно просто. Спасибо за ссылочку. Вещь очень полезная, я в Java такой не видел…
shiza, +1
Ps думаю вопросов не будет - там всё очень просто
Офлайн
shizaСпасибо за ссылку :). Есть вопрос.
модуль - есть такой smile
http://chardet.feedparser.org/
Определяет кодировку. Весьма успешно юзаю.
Будут вопросы по использованию - задавай.
# -*- coding: utf-8 -*-
import urllib
from chardet.universaldetector import UniversalDetector
usock = urllib.urlopen('http://lib.ru/NICSHE/zaratustra.txt')
detector = UniversalDetector()
num = 0
for line in usock.readlines():
num += 1
detector.feed(line)
if detector.done:
print num
break
detector.close()
usock.close()
print detector.result
Офлайн
The gray Cardinal
Да, у меня тоже с этой фичей незаладилось.
Нормально она срабатывает, только если какой-нибудь из UTF файлов с BOM ей подсунуть.
Еще есть над чем работать разработчикам =).
P.S. В тему. Я использую в работе собранную из кусочков библиотеку которая разспознает язык текста (типа там немецкий, китайский, русский).
Если кому-то она станет интересной - я ее причешу в боле-менее приличный вид и поделюсь. :)
Офлайн