Китайская кодировка в Python

Первоначально мне захотелось указать , где включено содержимое панели JS: в элементе или непосредственно перед закрытием . По умолчанию CodePen вставляет содержимое вашей JS-панели непосредственно перед закрытием , и на данный момент вы ничего не можете сделать (июль 2015 г.).

Есть что-то вроде взлома используйте, чтобы обойти это, хотя. Скажем, ваше перо находится на: http://codepen.io/lanshen/pen/j7GB5q (я только что это сделал). В вашей панели JS есть свой URL-адрес: http://codepen.io/lanshen/pen/j7GB5q.js

В разделе «Материал для » в вашем «Настройки» пера, добавьте тег, который относится к вашей панели JS:


Это приведет к тому, что содержимое панели JS будет включено в . Очевидная проблема с этим подходом заключается в том, что содержимое панели JS будет еще включено только до (т. Е. Оно будет включено дважды). Чтобы обойти эту проблему, я структурировал содержимое панели JS в if()/else(), чтобы if() был загружен в , а часть else будет загружена непосредственно перед . Ниже представлен шаблон шаблона JS, который я использовал. Опять же, убедитесь, что вы ссылаетесь на панель JS с тегом

XYZ

0
задан Daming Lu 13 July 2018 в 22:20
поделиться

3 ответа

Выбранный вывод называется байтовым объектом. Для его декодирования вам нужно сделать output.decode('utf-8').

Например:

output = b'\xe8\xbf\x99\xe7...'
unicode_output = output.decode('utf-8')
print(unicode_output)

выдаст нелатинские символы (я не могу включить его, потому что он считается как спам).

Другим способом сделать это в одной строке будет: print(b'\xe8\xbf\x99\xe7...'.decode('utf-8')).

Однако, если это не сработает, возможно, это связано с тем фактом, что ваш вывод не является байтовым объектом, но содержится внутри строки. Если это не сработает, то есть другое решение.

output = '\xe8\xbf\x99\xe7...'
exec('print(b\''+ output + '\'.decode(\'utf-8\'))')

Это должно быть в состоянии исправить. Надеюсь, у вас есть что-то полезное. Удачного дня!

1
ответ дан MilkyWay90 17 August 2018 в 12:07
поделиться

raw_bytes = b'\xe8\xbf\x99\xe7\xa7\x8d\xe6\x83\x85 . . .'

с объектом raw_bytes a <class 'bytes'>, содержащим ваши шестнадцатеричные символы, вы можете вызвать decode на raw_bytes и получить представление ваших символов <class 'str'>.

string_text = raw_bytes.decode("utf-8")

0
ответ дан rigsby 17 August 2018 в 12:07
поделиться

Это тип bytes, содержащий действительный китайский текст utf-8 (насколько я могу доверять Google Translate).

Если это строковый литерал из вашего кода, добавьте # -*- coding: utf-8 -*- как первая строка вашего файла Python.

Если это внешние данные, , вот как преобразовать его в текст (str): bytes_text.decode("utf-8")

0
ответ дан Victor Sergienko 17 August 2018 в 12:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: