Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 1, 2008 21:49:20

ka8725
От:
Зарегистрирован: 2008-12-01
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение кодировки файла в utf-8

Имеется задача: перекодировать файл, содержимое которого в неизвестной кодировке, в другой файл, кодировка которого должна быть UTF-8. Помогите, плиз, разобраться с этой задачкой, а то у меня уже совсем голова пухнет - ниче не получается…



Офлайн

#2 Дек. 1, 2008 22:20:30

crchemist
От:
Зарегистрирован: 2008-07-09
Сообщения: 379
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение кодировки файла в utf-8

Офлайн

#3 Дек. 2, 2008 01:33:45

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Изменение кодировки файла в utf-8

> содержимое которого в неизвестной кодировке
Тебе по каким то признакам нужно идентифицировать эту кодировку.
Можно решить задачу в лоб. Используя некоторое конечное число кодировок (utf-8, koi8-r, cp1251 и т.д.) декодировать исходный текст. Если не возникло ошибок (исключение UnicodeDecodeError) проанализировать текст на наличие, скажем, частоупотребляемых слов.

..bw



Офлайн

#4 Дек. 2, 2008 05:33:43

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение кодировки файла в utf-8

модуль - есть такой =)
http://chardet.feedparser.org/
Определяет кодировку. Весьма успешно юзаю.
Будут вопросы по использованию - задавай.



Офлайн

#5 Дек. 2, 2008 15:24:00

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение кодировки файла в utf-8

shiza, +1
Ps думаю вопросов не будет - там всё очень просто



Офлайн

#6 Дек. 2, 2008 15:36:38

ka8725
От:
Зарегистрирован: 2008-12-01
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение кодировки файла в utf-8

pythonwin
shiza, +1
Ps думаю вопросов не будет - там всё очень просто
Да, все предельно просто. Спасибо за ссылочку. Вещь очень полезная, я в Java такой не видел…



Офлайн

#7 Дек. 3, 2008 12:41:26

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение кодировки файла в utf-8

shiza
модуль - есть такой smile
http://chardet.feedparser.org/
Определяет кодировку. Весьма успешно юзаю.
Будут вопросы по использованию - задавай.
Спасибо за ссылку :). Есть вопрос.
По утверждению разработчиков, объект UniversalDetector автоматически остановится, как только сможет достаточно уверено сообщить о результатах. Однако он, похоже, не останавливается. Например:
# -*- 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
В этом примере “detector.done” никогда не истинно, текст долго и нудно хавается целиком.



Офлайн

#8 Дек. 3, 2008 22:02:17

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение кодировки файла в utf-8

The gray Cardinal
Да, у меня тоже с этой фичей незаладилось.
Нормально она срабатывает, только если какой-нибудь из UTF файлов с BOM ей подсунуть.
Еще есть над чем работать разработчикам =).

P.S. В тему. Я использую в работе собранную из кусочков библиотеку которая разспознает язык текста (типа там немецкий, китайский, русский).
Если кому-то она станет интересной - я ее причешу в боле-менее приличный вид и поделюсь. :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version