我正在将本地化的日期字符串放在标签中。这在英语中效果很好,但是当我使用locale.setlocale(locale.LC_TIME, "it_IT")
用意大利语格式化日期时,结果被弄乱了:
以下是代码的相关部分:
from tkinter import *
import locale
from datetime import date
root = Tk()
locale.setlocale(locale.LC_TIME, "it_IT")
today = date.today().strftime('%A %d %B')
Label(root, text=today, bg='black', fg='white', font=("arial", 35)).pack()
root.mainloop()][1]
ì
(带有重音符号的i
在此处显示为ì
。
我正在使用Python 3.6
如果我直接使用text="Lunedì 03 Dicembre" in the
Label()`调用,输出将是正确的。
为什么输出混乱?
答案 0 :(得分:1)
您需要使用一种更特定的语言环境,其中一种具有代码页来编码包含的字符:
locale.setlocale(locale.LC_TIME, "it_IT.UTF-8")
我怀疑您的系统默认设置为ISO8859-15
或ISO8859-1
,并且使用这两个编解码器中的任意一个对UTF-8编码的日期名称进行了解码。