【发布时间】:2012-08-20 22:15:39
【问题描述】:
我在将字符串格式化为 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
【问题讨论】:
-
sheet.cell().value 返回什么? unicode 字符串?一个字节串?
-
试试 urllib.unquote(string) ,导入 urllib 使用。
-
urllib.unquote 没有改变任何东西