#python #python_3x #apache #кодировка
Как заставить пайтон работать с кодировкой utf-8? Генерируется файл file.pyc (или не генерируется, сам не понял) с win1251 заголовками из utf file.py Собственно исходный файл. Авось поможет. Файл кодирован в utf-8 без BOM #!/usr/bin/python # -*- coding: utf-8 -*- import string import sys print ('''Content-type: text/html''') print ('''Проверка Python Русский текст - Nerusskii text
- ''')
А в браузер я получаю страничку с хедерами
Content-Type:text/html; charset=UTF-8
и содержимым. (Браузер смотрит в utf-8, а файл то win1251)
-
UP (Спустя много лет)
Проблема таки оказалась в Apache.
Решение нашлось туть
AddDefaultCharset UTF-8
SetEnv PYTHONIOENCODING utf8
Ответы
Ответ 1
Попробуй добавить в шапку py ## -*- coding: utf-8 -*- И сохранить файл в utf-8.Ответ 2
Собственно в какой программе пишется сам код? Вы пробовали проэксперементировать, например указать в заголовки кодировку как win1251. Так же возможно используемый шрифт в браузере ничего не знает о русских буквах в UTF (помню раньше в windows XP из за таких вот телодвижений, в прочим как и в Висте приходилось в системе жестко указывать шрифт, так как многие приложения не только не знали о русских но и о многих других языках.) Так же стоит попробовать жестко указать функции print о используемой кодировке для строки. Так же не совсем понятно куда выводит ваши сообщения функция print, возможно то что принимает вывод не знает о русских буквах. (когда "система" не знает о русских буквах и получает хотя бы букву в виде набора байт то разбивает ее на две (вспомните СМС, английскими символами написать вы можете больше чем русскими) и мы получаем 2 совершенно самостоятельных символа на выходе, а так как они существую, то естественно в дальнейшей обработке они и идут как 2 совершенно разных символа а не наша русская буква. хотя в вашем случае похоже это не совсем то, так как количество символов здесь не 2 раза больше, но думаю принцип вам понятен.)
Комментариев нет:
Отправить комментарий