我在 Python2.7 中编码时遇到问题 我在 Excel 文件中保存了一个字符串,因为我相信 utf-8 但是当我在 python 中打开它时,我似乎无法正确解码
保存为 utf-8 的文本示例:Belo Horizonte (MG) Praça Diogo de Vasconcelos, Fundo Correio da Manhã
当我将文本复制到外壳中时,它会按预期解码:
print "Belo Horizonte (MG) Praça Diogo de Vasconcelos, Fundo Correio da Manhã".decode('utf-8')
Belo Horizonte (MG) Praça Diogo de Vasconcelos, Fundo Correio da Manhã
但是,当我尝试使用以下代码对 Excel 文件中保存的某些文本使用相同的过程时:
import xlrd, codecs
ExcelFileName= 'outfinbrazil2.xlsx'
workbook = xlrd.open_workbook(ExcelFileName)
worksheet = workbook.sheet_by_name("Sheet1")
num_rows = worksheet.nrows
num_cols = worksheet.ncols
for curr_row in range(1, num_rows, 1):
row_data = []
theid = worksheet.cell_value(curr_row, 0)
data = worksheet.cell_value(curr_row, 2)
print data
print data.decode('utf-8')
我得到:
Belo Horizonte (MG) Praça Diogo de Vasconcelos, Fundo Correio da Manhã
Traceback (most recent call last):
File "D:\brazil\test.py", line 15, in <module>
print data.decode('utf-8')
File "C:\Python27\ArcGIS10.3\lib\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 23-24: ordinal not in range(128)
我究竟做错了什么?