マイナビ連載中の【ゼロからはじめるPython】ですが、20回目「2行で作るPythonカレンダー」で紹介しているHTMLカレンダーの挙動がWindowsで異なることがあるとご報告がありました。そこで、検証してみると、確かに、日本語でヘッダが表示されません。そこで、プログラムの冒頭にロケール設定を記述すると、正しく日本語で月火水・・・と表示されるようになりました。
以下のように冒頭にロケール設定を記述すると良いようです。
# 日本語にロケールを設定する import locale locale.setlocale(locale.LC_ALL, 'ja_JP') # 日本語のカレンダーを作る --- (*1) import calendar lc = calendar.HTMLCalendar() body = lc.formatyear(2018, width=4) # HTMLのヘッダとフッタを指定 --- (*2) html = """<html><head><style> table { padding: 8px; } th { border-bottom: 1px solid gray; } td { padding: 4px; vertical-align: top; } .sun { color: red; } .sat { color: blue; } </style></head><body>""" + body + """ </body></html>""" # ファイルに保存 --- (*3) f = open("calendar2018.html", "wt") f.write(html)