Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 3, 2016 16:53:05

dobriy_dada
Зарегистрирован: 2015-09-04
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Не понимает юникод

Здравствуйте, подскажите пожалуйста, на одном из трёх компьютеров не работает такой такой код (стоит другая версия PyCharm на этом компе):

# coding: utf-8
sample1 = '\u06bf'
sample2 = '\u00bc'
sample3 = '\u0969'
sample4 = '\u1D124'
print(sample1, sample2, sample3, sample4)

На одном из трёх компьютеров выводится сообщение об ошибке:
Traceback (most recent call last):
  File "C:/Users/�������������/PycharmProjects/untitled/������.py", line 10, in <module>
    print(sample1, sample2, sample3, sample4)
  File "C:\Anaconda3\lib\encodings\cp1251.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u06bf' in position 0: character maps to <undefined>

Как исправить, чтобы использовался кодек utf-8 вместо cp1251 ? Хотя в самом коде стоит указание на utf-8.
Как сделать так чтобы отображался скрипичный ключ? :-) Когда выводит, то получается “ae”

Офлайн

#2 Июнь 3, 2016 17:06:29

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не понимает юникод

А зачем такие извращения?
Это же литералы, пишите сразу понятными буквами.



Офлайн

#3 Июнь 3, 2016 17:37:20

dobriy_dada
Зарегистрирован: 2015-09-04
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Не понимает юникод

FishHook извините, что значит - “нормальные буквы”?

Офлайн

#4 Июнь 3, 2016 17:48:07

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не понимает юникод

>>> пишите сразу понятными буквам

>>> “нормальные буквы”?


Ну вот это - ПШĤ ĥ Ħ͇̓̈́͆ͅjdvJBJjbjѠѡѢѣѤѥѦѧѨѩАМݑݒݓݔݕݖݗݘݙݚݛݜבגדהוזחט
нормальные понятные буквы разных алфавитов,
а вот это ‘\u00bc’ - зачем?



Офлайн

#5 Июнь 3, 2016 17:54:24

dobriy_dada
Зарегистрирован: 2015-09-04
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Не понимает юникод

FishHook А как их написать-то ? на клавиатуре же их нету
Ну и почему в одном случае кодировка не utf-8 , а cp1225 ? Как от этой ошибки избавиться?

Офлайн

#6 Июнь 3, 2016 18:03:00

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не понимает юникод

dobriy_dada
на клавиатуре же их нету
А откуда вы коды этих букв взяли?



Офлайн

#7 Июнь 3, 2016 18:46:15

dobriy_dada
Зарегистрирован: 2015-09-04
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Не понимает юникод

FishHook Так из интернета, с сайта про Юникод http://unicode-table.com/ru/
Я всё равно не понимаю, вот я написал \u06bf, как это перевести в читаемый вид?

Отредактировано dobriy_dada (Июнь 3, 2016 18:46:43)

Офлайн

#8 Июнь 3, 2016 18:54:11

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не понимает юникод

dobriy_dada
Так из интернета,
Ну так там сами буквы, зачем вам их коды?
Копируйте сами буквы.



Отредактировано FishHook (Июнь 3, 2016 18:54:28)

Офлайн

#9 Июнь 3, 2016 21:56:17

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Не понимает юникод

FishHook
Ну так там сами буквы, зачем вам их коды?
Копируйте сами буквы.
Ну что вы его заставляете? Имеет право писать коды. Язык их поддерживает.
dobriy_dada
Хотя в самом коде стоит указание на utf-8.
Это указание на кодировку текста программы и больше ни на что не влияет. У вас в тексте нет букв которые требуют указания кодировки. Посему безразлично что вы там напишете.
dobriy_dada
Как сделать так чтобы отображался скрипичный ключ? :-)
Вот у меня сейчас запущен XP и никак не сделать. Не поддерживает он такие символы в консоли.
dobriy_dada
Как исправить, чтобы использовался кодек utf-8 вместо cp1251
можно попробовать установить переменную окружения PYTHONIOENCODING=UTF-8
Можно самостоятельно закодировать данные как хотите при помощи метода encode.



Офлайн

#10 Июнь 4, 2016 06:55:35

dobriy_dada
Зарегистрирован: 2015-09-04
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Не понимает юникод

doza_and

можно попробовать установить переменную окружения PYTHONIOENCODING=UTF-8
А как её установить раз и навсегда? :-) Это надо в тексте программы написать? Просто у меня такая ошибка выскакивает только на одном компе из трёх, а на двух всё нормально

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version