0

我无法将字符串格式化为 utf-8 在此脚本中,我从 excel 文件中获取数据,然后循环打印出来,问题是带有特殊字符的字符串显示错误。

结果我不断得到“PatrÄ«cija”而不是“Patrīcija”似乎找不到解决这个问题的方法

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

    import sys
    import xlrd
    import datetime

    def todaysnames():
    todaysdate = datetime.datetime.strftime(datetime.date.today(), "%d.%m")

    book = xlrd.open_workbook("vardadienas.xls")
    sheet = book.sheet_by_name('Calendar')
    for rownr in range(sheet.nrows):
        if sheet.cell(rownr, 0).value == todaysdate:
            string = (sheet.cell(rownr, 1).value)
            string = string.encode(encoding="UTF-8",errors="strict")
            names = string.split(', ')
            return names

    names = todaysnames()
    for name in names:
        print name
4

2 回答 2

1

将编码更改为iso8859_13(Baltic languages)并修复它。

于 2012-08-25T20:05:21.997 回答
-1

我认为您的问题可能是由print. xlrd 返回 utf8。根据控制台的编码,print可能难以正确打印。我有时在法语 Windows 上注意到这一点(编码为 cp1252)

以下问题:Python、Unicode 和 Windows 控制台解释了如何在 Windows 的控制台上打印 unicode char。我自己没试过,但看起来不错。

我希望它有帮助

于 2012-08-25T19:33:48.740 回答