Форум сайта python.su
Вот маленький FAQ:
http://forum.script-coding.info/viewtopic.php?id=845
Офлайн
Butjok, какая ОС? и какая кодировка по-умолчанию в консоли?
Офлайн
Я пытаюсь написать простой CGI-скрипт под Windows (использую Denwer):
#!/usr/bin/python
# -*- coding: utf8 -*-
import cgitb; cgitb.enable()
print 'Content-Type: text/html; charset=utf8'
s = u'фыва'
print s[0].encode('utf8') # Только так работает
Офлайн
Не забывай сам файл сохранять в utf-8! Тогда можно просто делать так:
a='фыва'
print a[0]
Офлайн
igor.kaist, ну вот, я сохранил файл в UTF-8 в отметкой BOM:
#!/usr/bin/python
import cgitb; cgitb.enable()
print 'Content-Type: text/html; charset=utf8'
a = 'фыва'
print a[0]
Офлайн
Хм.. У меня все работает нормально.
Попробуй убери bom и скажи #-*-coding:utf-8-*-
Офлайн
igor.kaist, все так же и осталось, выводится вопросик.
Офлайн
В общем я почти разобрался.
Python не может вычислить выходную кодировку sys.stdout.encoding, поэтому, видимо, придется все время писать .encode('utf-8') либо написать обертку.
А код:
a='фыва'
print a[0]
Офлайн
У меня сайт через cgi работает.. Через print вывожу.. Правда cp1251, но разницы не должно быть..
Офлайн
igor.kaist, как раз разница здесь огромная. UTF-8 - это многобайтовая кодировка, а cp1251 - однобайтовая.
Офлайн