Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Python convert ucs-2be в utf-8  (Прочитано 1562 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн pomkalk88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Python convert ucs-2be в utf-8
« : 21 Ноября 2014, 15:06:28 »
Добрый день, у меня установлен smsd (smstools3) но от при получении смс записывает русские буквы в виде ucs-2be, как бы используя bash
tail -n 1 FileOfSMS | iconv -f UCS-2BE -t UTF-8 конвертирует текст, а как это в питоне считывая файл сконвертировать текст в нормальный вид?

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 754
    • Просмотр профиля
Re: Python convert ucs-2be в utf-8
« Ответ #1 : 21 Ноября 2014, 15:51:38 »
Если я правильно понимаю, то codecs.open(filename, mode, "UTF-16BE")

chemtech

  • Гость
Re: Python convert ucs-2be в utf-8
« Ответ #2 : 21 Ноября 2014, 15:55:28 »
pomkalk88,
А так:

with codecs.open( sourceFileName, "r",  "ucs-2be", ) as sourceFile:
    contents = sourceFile.read()

with codecs.open( sourceFileName, "w", "utf-8") as targetFile:
    if contents:
        targetFile.write(contents)

Оффлайн pomkalk88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Python convert ucs-2be в utf-8
« Ответ #3 : 21 Ноября 2014, 16:17:29 »
.decode("UTF-16BE")В общем так строка кодируется на русский язык, всем спасибо большое, убил целый день, пробывал различные комбинации кодировки в сочетании decode/encode, по все видимости где то пропустил.

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 754
    • Просмотр профиля
Re: Python convert ucs-2be в utf-8
« Ответ #4 : 24 Ноября 2014, 10:23:57 »
по все видимости где то пропустил.
Тут список всех кодировок: https://docs.python.org/2/library/codecs.html#standard-encodings

 

Страница сгенерирована за 0.051 секунд. Запросов: 25.