0

我在 Python2.7 中编码时遇到问题 我在 Excel 文件中保存了一个字符串,因为我相信 utf-8 但是当我在 python 中打开它时,我似乎无法正确解码

保存为 utf-8 的文本示例:Belo Horizo​​nte (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)

我究竟做错了什么?

4

0 回答 0