Найти - Пользователи
Полная версия: Проблемы с кодировкой в HTML файле
Начало » Python для новичков » Проблемы с кодировкой в HTML файле
1
ValeriJan
Windows 10
Python 3.9.7
Локальный хостинг - Apache 2.4
Есть HTML страница, написанная на Python:
 #! C:/Python/python
 
print ('Content-type: text/html\n\n')
print ('''<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Титул</title>
</head>
 
<body>Текст</body>
</html>''')

Чтобы я с ней не делал (пробовал все, что нашел в сети про кодировки в Python), вместо русского текста выводятся знаки �����
При этом, если загружать в данную страницу русский текст из файла, то он читается нормально.

Помогите, пожалуйста, решить проблему!
py.user.next
Перед title вставь такой тег
  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

В файле настроек Apache также проверь кодировку
AddDefaultCharset utf-8
ValeriJan
py.user.next - сделал, как ты написал. Ничего не изменилось - по прежнему �����

Добавлял в Apache строку SetEnv PYTHONIOENCODING utf8
В этом случае текст в программе становится нормальным, но тогда в кракозябры превращается текст, загружаемый в страницу из файла: Оборудование
При этом и сама страница на Python с русским текстом, и внешний файл с русским текстом сохранены в UTF-8.
py.user.next
ValeriJan
но тогда в кракозябры превращается текст, загружаемый в страницу из файла
Из какого файла?

Поставь себе Linux. Это всё проблемы винды. Ни Apache, ни Python тут ни при чём. Фактически ты на винду сейчас тратишь время и на её личные заморочки.
PEHDOM
ValeriJan а сама страница в какой кодировке то?
ValeriJan
Задача - сделать именно в Windows 10.
Файл и внешний текстовый файл написаны и сохранены в utf-8
Полный код:
 #! C:/Python/python
print ('Content-type: text/html\n\n')
# Титул и слово Текст в теле документа выводятся ромбами
print ('''<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Титул</title>
</head>
<body>Текст<br>''')
fa = open('set/news.txt')
ws = fa.read()
fa.close()
# Текст из файла set/news.txt выводится в правильном виде
print (ws)
print ('</body></html>')

Изменить ситуацию можно только записав в Апаче строку SetEnv PYTHONIOENCODING utf8
Тогда текст, встроенный в файл Python отображается правильно. Но теперь неправильно отображается текст из файла set/news.txt
Никаких вариантов, чтобы и текст, встроенный в файл Python, и текст из файла set/news.txt отображались одинаково правильно мне найти не удалось.

Про заморочки Windows - сомневаюсь. Я 18 лет занимаюсь веб-программированием на PHP и Perl в Windows - и ни разу ничего подобного не встречал. Судя по массе тем в сети про кодировки Python - это все же заморочка Python.
ValeriJan
Проблема решена.
py.user.next
ValeriJan
Изменить ситуацию можно только записав в Апаче строку SetEnv PYTHONIOENCODING utf8
В Linux никаких проблем нет ни с Apache, ни с Python. То есть там не надо ничего устанавливать, там просто всё работает. А устанавливать тебе надо как раз потому, что ты в винде Apache поставил.
То же самое касается кодировок. В Linux везде кодировка utf-8 стоит, поэтому в отношении кодировок тоже не нужно ничего настраивать.

ValeriJan
Я 18 лет занимаюсь веб-программированием на PHP и Perl в Windows
Ну, поздравляю, ты всё это время потратил на пустоту. Из-за этого ты ничего и не знаешь.

ValeriJan
Судя по массе тем в сети про кодировки Python - это все же заморочка Python.
Я не знаю, что ты пыжишься и споришь с нами, но мы все видим твой код, который ты выложил. Это уровень школьника. Это не программист с 18-летним стажем написал, это просто какая-то параша уровня 12-летнего мальчика, который ещё не знает квадратные уравнения и поэтому ему ещё нельзя давать матрицы и полиномы, так как он их банально не поймёт. Естественно, что ты не знаешь, как устроен генератор капчи там или mp3-файл, потому что это слишком сложно.

Так что ставь Linux. Оно хотя бы научит тебя Python ставить правильно. Какой дурак будет ставить питон в корень диска C? Только ламер. Так что не позорься про свои 18 лет непонятно чего.
ValeriJan
py.user.next - спасибо, насмешил.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB