Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кодировка русского текста в UTF-8, помогите, не получается перекодировать  
:(
    Опции темы
sidor
Дата 12.7.2008, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 18.10.2007

Репутация: нет
Всего: нет



Помогите пожалуста, никак не поборю.

Нужно перекодировать русский текст в UTF-8.

Есть некое место, которе принимает текст только в UTF-8. 
Задача видимо простая, в книгах описанная, но не получается перекодировать русский текст в UTF-8 если он изначально не в unicode.
Изначально текст просто в askii.

ss = "русский текст"
uss = unicode(ss, 'utf-8') - не работает
uss = ss.decode('utf-8') - тоже не работает

Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "...\Python25\lib\encodings\utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-3: invalid data


PM MAIL   Вверх
_Viper_
Дата 14.7.2008, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 8.11.2006

Репутация: нет
Всего: 11



Вообще ascii русских символов не содержит, так что скорее всего у тебя какая-то другая кодировка.
Ну а если всё таки у тебя ascii, то должно быть так:
Код

ss = "some ascii text"
uss = unicode(ss)                #uss = unicode(ss, 'cp1251') - вариант для виндовой кодировки
uss = uss.encode('utf-8') 


Это сообщение отредактировал(а) _Viper_ - 14.7.2008, 10:12
PM MAIL   Вверх
sidor
Дата 15.7.2008, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 18.10.2007

Репутация: нет
Всего: нет



спасибо, разобрался.

попутный вопрос: есть ли возможность разобраться какая у меня сейчас кодировка текста ?

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

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

PM MAIL   Вверх
_Viper_
Дата 15.7.2008, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 8.11.2006

Репутация: нет
Всего: 11



Цитата(sidor @  15.7.2008,  01:55 Найти цитируемый пост)
есть ли возможность разобраться какая у меня сейчас кодировка текста ?

К сожалению универсального способа нету. Напиши откуда ты эти строки берёшь, тогда и можно будет что-то посоветовать.
PM MAIL   Вверх
sidor
Дата 16.7.2008, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 18.10.2007

Репутация: нет
Всего: нет



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

поковыряю...


PM MAIL   Вверх
opensystem
Дата 30.7.2010, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 30.7.2010
Где: РД г.Махачкала

Репутация: нет
Всего: нет



У меня точно такая же проблема, выходит ошибка 
  File "C:\Python25\lib\encodings\utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)

UnicodeDecodeError: 'utf8' codec can't decode bytes in position 43-44: invalid data

Объясните пожалуйста где прописывать выше указанное ?
Я не программист, я сис админ))
PM MAIL WWW ICQ   Вверх
dipsy
Дата 5.8.2010, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 13.1.2005
Где: Нижний Новгород

Репутация: нет
Всего: нет



Цитата(sidor @  15.7.2008,  01:55 Найти цитируемый пост)
попутный вопрос: есть ли возможность разобраться какая у меня сейчас кодировка текста ?

Попробуй модуль chardet.
Сначала с помощью него угадываешь, что за кодировка. А потом уже в коде перекодируешь для своего частного случая, не используя chardet.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Веб-разработка и фреймворки | Следующая тема »


 




[ Время генерации скрипта: 0.0668 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.