Файл должен выводиться в utf-8, а в консоли - 866, в итоге в браузере отображаются ромбы.
После команды chcp 65001 ничего не поменялось.
Поскольку в консоли используется кодовая страница 866, то если в реестре поменять значение REG_SZ-параметра "866" под ключом [HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage] с "C_866.nls" (по умолчанию) на иное, то и кодировка в cmd также должна измениться.
Но у меня в CodePage таких файлов нет. Есть типы REG.SZ по умолчанию и 4 файла с номерами 932 936 949 950
Вариант постоянно изменять в консоли chcp не подходит, но и не работает. Lucida console подключен в консоли. Cygwin64 Terminal и Gitbash не запускает python server
Какие-то ещё есть варианты?
generate.py
spoiler
# coding: utf-8
from horoscope import generate_prophecies
from datetime import datetime as dt
def generate_page(head, body):
page = f"<html>{head}{body}</html>"
return page
def generate_head(title):
head = f"""<head>
<meta charset='utf-8'>
<title>{title}</title>
</head>
"""
return head
def generate_body(header, paragraphs):
body = f"<h1>{header}</h1>"
for p in paragraphs:
body = body + f"<p>{p}</p>"
return f"<body>{body}</body>"
def save_page(title, header, paragraphs, output="index.html"):
fp = open(output, "w")
today = dt.now().date()
page = generate_page(
head=generate_head(title),
body=generate_body(header=header, paragraphs=paragraphs)
)
print(page, file=fp)
fp.close()
#####################
today = dt.now().date()
save_page(
title="Гороскоп на сегодня",
header="Что день " + str(today) + " готовит",
paragraphs=generate_prophecies(),
)
horoscope.py
spoiler
# coding: utf-8
from horoscope import generate_prophecies
from datetime import datetime as dt
def generate_page(head, body):
page = f"<html>{head}{body}</html>"
return page
def generate_head(title):
head = f"""<head>
<meta charset='utf-8'>
<title>{title}</title>
</head>
"""
return head
def generate_body(header, paragraphs):
body = f"<h1>{header}</h1>"
for p in paragraphs:
body = body + f"<p>{p}</p>"
return f"<body>{body}</body>"
def save_page(title, header, paragraphs, output="index.html"):
fp = open(output, "w")
today = dt.now().date()
page = generate_page(
head=generate_head(title),
body=generate_body(header=header, paragraphs=paragraphs)
)
print(page, file=fp)
fp.close()
#####################
today = dt.now().date()
save_page(
title="Гороскоп на сегодня",
header="Что день " + str(today) + " готовит",
paragraphs=generate_prophecies(),
)
При запуске кода (python generate_all.py из командной строки или Ctrl+B в саблайме) в этой же папке генерируется файл index.html, и, если поднять сервер в этой же директории (python -m http.server) из консоли win, то в браузере ромбы.