即使使用gettext.bind_textdomain_codeset(“fr”,“iso-8859-1”),翻译也会给出奇怪的字符

时间:2014-03-17 12:27:46

标签: python gettext

我正在将我的Python应用程序翻译成法语。我生成了.po文件,但我遇到了法语字符显示不正确的问题。

示例:

exécution出现exÚcution

PS:我使用gettext进行翻译。

即使我使用chcp 1252它也不起作用..我使用Pydev并且当我尝试将数据打印到Pydev控制台时它起作用但是它不是我想要的:那和&# #39;我将处理程序添加到记录器的方式可能就是问题:

if givesFileName:
        if FileName is None:
            print('Please specify an output Text File Name')
            # Exit with error
            sys.exit()
        #create file handler
        fh = logging.handlers.RotatingFileHandler(FileName, mode="w",encoding="utf-8")
        fh.setLevel(logging.DEBUG)
        logger.addHandler(fh) 
else:
        #create console handler
        ch = logging.StreamHandler()
        ch.setLevel(logging.DEBUG)
        logger.addHandler(ch)"

1 个答案:

答案 0 :(得分:0)

您的数据已解码IBM-850 codec,而不是拉丁语1:

>>> print u'exécution'.encode('latin1').decode('ibm850')
exÚcution

这意味着您可以从文件中正确读取数据,但输出您的数据会被编码为错误的代码页。