2016-02-23 4 views
1

Я только начал использовать VSCode для некоторых скриптов python. Когда я пытаюсь напечатать что-то вроде:VSCode - окно вывода говорит «UnicodeEncodeError», когда я пытаюсь распечатать unicode

print('%s' % string.decode('utf-8')) 

Я получаю следующее сообщение об ошибке в окне вывода:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 16-20: ordinal not in range(128) 

Я знаю, что это, вероятно, потому, что выходной поток только ASCII, но я не могу найти место изменить его ..., либо я пропустил его, либо это так, как есть?

Я использую v0.10.8 на Win7 64bit.

Заранее благодарен!

+0

Try '.decode ('utf-16')' – Arman

+1

Тот же самый код работает в IEP (еще одна IDE python). Так что это не проблема с кодом. – neolei

+0

Хмм, если вы поймаете UnicodeEncodeError и напечатаете 'repr (string)', что он печатает в VSCode и в других IDE? – Lav

ответ

0

Ваш синтаксис является правильным

arabic_bytes=b'\xd9\x83\xd9\x84\xd8\xa7 \xd8\xa8\xd8\xaf\xd8\xa7\xd9\x8a\xd8\xa9 \xd9\x88\xd8\xa8\xd8\xaf\xd8\xa7\xd9\x8a\xd8\xa9' 

print('%s' % arabic_bytes.decode('utf-8')) 

И вы должны увидеть كلا بداية وبداية

Вполне возможно, что ваша строка байт поврежден в этом случае изменения вы расшифровывать быть

arabic_bytes.decode('utf-8', errors='ignore') 
+0

Те же ошибки. Я забыл упомянуть, что я все еще использую Python2. – neolei

+0

Команда, которую я поделил, также работает в Python2.7 ... Можете ли вы поделиться тем, что выглядит ваша «строка»? Введите тип (строка), чтобы подтвердить тип данных. –

+0

Вы используете его в VSCode и видите результат в окне вывода? – neolei

Смежные вопросы