, и на данный момент вы ничего не можете сделать (июль 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 с тегом
в разделе «Stuff for
» в HTML, как я упоминал выше.
var headLoad;
if(!headLoad) { // when loaded in HEAD, headLoad will be falsey
headLoad = {}; // when loaded before , headLoad will be truthy
(function() {
// PUT YOUR JS TO BE EXECUTED IN HEAD HERE...
alert("I am executing in the HEAD!");
headLoad.doSomething = function(mssg) {
// ...
alert(mssg);
};
})();
} else { // this code is not executed until just prior to
// PUT YOUR JS TO BE EXECUTED PRIOR TO HERE...
alert("The BODY is about to close....");
doSomething = function(mssg) {
alert(mssg);
};
doSomething("789");
}
Вот небольшая панель HTML, чтобы проверить ее :
ABC
XYZ
Выбранный вывод называется байтовым объектом. Для его декодирования вам нужно сделать 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\'))')
Это должно быть в состоянии исправить. Надеюсь, у вас есть что-то полезное. Удачного дня!
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")
Это тип bytes
, содержащий действительный китайский текст utf-8 (насколько я могу доверять Google Translate).
Если это строковый литерал из вашего кода, добавьте # -*- coding: utf-8 -*-
как первая строка вашего файла Python.
Если это внешние данные, , вот как преобразовать его в текст (str
): bytes_text.decode("utf-8")