ifired
@ifired

Как перекодировать строку в Python из utf-16 в utf-8?

Есть строка:
Ą᠄䄄㼄㸄㬄䰄㜄䌄㤄䈄㔀 㨄㸄㐀 㤀 㠀 ㌀㜀㐀 㐄㬄伀 㼄㸄㐄䈄㈄㔄䀄㘄㐄㔄㴄㠄伀 䄄㈄㸄㔄㌄㸀 〄㨄㨄〄䌄㴄䈄
Знаю, что в кодировке utf-16be, помогите перекодировать в utf-8. Пробовал с помощью codecs, результат - кракозябры. Результат на русском языке, в нем 6значный цифровой код. Простые способы вроде encode-decode ничего не дают
  • Вопрос задан
  • 987 просмотров
Решения вопроса 1
@Andy_U
Вот этот код:

# -*- coding: utf-8 -*-
s = 'Ą᠄䄄㼄㸄㬄䰄㜄䌄㤄䈄㔀 㨄㸄㐀 㤀 㠀 ㌀㜀㐀 㐄㬄伀 㼄㸄㐄䈄㈄㔄䀄㘄㐄㔄㴄㠄伀 䄄㈄㸄㔄㌄㸀 〄㨄㨄〄䌄㴄䈄'
print(s.encode('utf-16be').decode('utf-16le'))

печатает:

ЁИспользуйт5Рко4 908 374РдлOРподтверждениOРсвоег>Раккаунт


Причем utf-16be и utf-16le можно обменять местами :) В общем, лучше бы вы привели исходную байтовую строку.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@abcd0x00
>>> s = 'абвг'.encode('utf-16be')
>>> s
b'\x040\x041\x042\x043'
>>> 
>>> out = s.decode('utf-16be').encode('utf-8')
>>> out
b'\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3'
>>> 
>>> out.decode('utf-8')
'абвг'
>>>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
OnederX Москва
от 100 000 до 120 000 ₽
NatsON Москва
от 220 000 до 350 000 ₽
SwapZilla.co Москва
от 200 000 ₽
15 авг. 2020, в 01:45
95000 руб./за проект
14 авг. 2020, в 22:47
15000 руб./за проект
14 авг. 2020, в 22:40
15000 руб./за проект