Unicode和区域设置问题

2 投票
1 回答
569 浏览
提问于 2025-04-17 20:04

我在写一个使用unicode特性的Python(2.7版)脚本时遇到了困难。问题出现在我尝试使用嵌入的locale包时。以下是我遇到问题的代码片段:

# -*- coding: utf-8 -*-
import datetime
import os
import locale
locale.setlocale(locale.LC_ALL, 'greek')
day = datetime.date.today()
dayFull = day.strftime('%A')
myString = u"ΚΑΛΗΜΕΡΑ"
print myString
print dayFull

虽然dayFull可以正确打印出当前的星期几(用希腊字母表示),但是myString在控制台中却显示为问号字符。我该如何解决这个问题,有人能指出我哪里出错了吗?

附注:我的系统是Windows 7。

1 个回答

3

在控制台中使用正确的希腊字符编码,同时选择一个支持希腊字符的字体,比如 Consolas。我在 Windows 7 和 Python 2.7.3 中这样做是有效的:

C:\>chcp 1253
Active code page: 1253

C:\>python temp.py
ΚΑΛΗΜΕΡΑ
Σάββατο

顺便说一下,Python 3.3 在使用(同样是希腊字符的)737 编码时也能正常工作,但 Python 2.7 打印出来的结果是:

C:\>temp.py
????????
Σάββατο

撰写回答