Форум сайта python.su
Добрый день.
Есть unicode строка с символом“№”:
str = u'primer №1'
выводим эту строку и получаем
>>> print str
primer ¹1
Вместо символа № получили символ ¹. Почему и как это исправить подскажите пожалуйста?
А если далее сделать так получим другую непонятку:
>>> str2 = str.encode('utf-8')
>>> print str2
primer В№1
В строке появился лишний символ.
Need help
Офлайн
Вы в консоли код набираете, или это файл?
Офлайн
В Python GUI
Офлайн
ОС?
Офлайн
Windows Server 2008
Офлайн
skydriverМне кажется, в винде другая кодировка используется, что-то типа Windows-1251
'utf-8
Офлайн
То есть это расценивать как глюк питона в Windows?
Офлайн
skydriverЧто у вас происходит по вашему описанию непонятно.
То есть это расценивать как глюк питона в Windows?
Офлайн
Да, имел ввиду Idle. Но что значит, что программа выдает в одной кодировке, а другая думает, что они в другой, другой же нет, речь о Idle и только. Причем мы кодировку явно задаем посредством спецификатора u, строка в юникод, ее же выводим и получаем другой результат. Причем проблема именно с этим символом, с другими подобной проблемы нет. А то, что windows поддерживает utf-8 не в полном объеме вообще новость, это же стандарт, его можно или поддерживать или нет…
Офлайн
skydriverЕсли вы так думаете то windows не поддерживает utf-8.
или поддерживать или нет…
>>> aa="dasd№" >>> print aa dasd№
>>> aa=u"dasd\u2116" >>> print aa dasd№
Отредактировано doza_and (Май 25, 2016 10:25:25)
Офлайн