如何使用python将包含unicode的字符串转换为unicode

如何使用python将包含unicode的字符串转换为unicode,python,excel,unicode,Python,Excel,Unicode,我正在使用python上的xlrd从excel导入大量数据 我的所有数据都是这样的字符串:text:u'L\xc9GENDE' 我处理这些数据,并尝试将它们放回excel(使用xlsxwriter),当我这样做时,我会得到相同的文本块:u'L\xc9GENDE'而不是LÉGENDE 对我有用的是: #!/usr/bin/env python # -*- coding: latin-1 -*- import xlsxwriter import sys workbook = xlsxwriter.

我正在使用python上的xlrd从excel导入大量数据

我的所有数据都是这样的字符串:text:u'L\xc9GENDE'

我处理这些数据,并尝试将它们放回excel(使用xlsxwriter),当我这样做时,我会得到相同的文本块:u'L\xc9GENDE'而不是LÉGENDE

对我有用的是:

#!/usr/bin/env python
# -*- coding: latin-1 -*-
import xlsxwriter
import sys

workbook = xlsxwriter.Workbook('hello.xlsx')
worksheet = workbook.add_worksheet()
data = u'L\xc9GENDE'
worksheet.write('A1',data)
workbook.close()
这会起作用的,我会把LÉGENDE放在A1牢房里

但是如果我试图操纵一个字符串,我已经给了我u'L\xc9GENDE',它只会在A1单元格中显示L\xc9GENDE

----编辑---- 我用于从excel检索数据的代码

from xlrd import open_workbook

def grabexcelfile():
    wb = open_workbook('leg.xls',encoding_override='latin-1')    
    log = []
    txt = ''
    for s in wb.sheets():         
        for row in range(s.nrows):              
            values = []
            for col in range(s.ncols):
                 txt = str(s.cell(row,col))
                 txt.replace('-',' ',10) 
                 log.append(txt) 
    return log            

x = grabexcelfile()
print type(x[0]),x[0]
打印给我:text:u'L\xc9GENDE'

试试这个

import unicodedata
data = u'L\xc9GENDE'
unicodedata.normalize('NFKD',data).encode('ascii','ignore')

您可以在此处查看更多->

而不是试图操纵文本:u'L\xc9GENDE',我改为使用以下内容更改了var excel的类型:

from xlrd import open_workbook

def grabexcelfile():
    wb = open_workbook('leg.xls',encoding_override='latin-1')    
    log = []
    txt = ''
    for s in wb.sheets():         
        for row in range(s.nrows):              
            values = []
            for col in range(s.ncols):
                 #next line is changed
                 txt = sheet.cell(row,col).value
                 txt.replace('-',' ',10) 
                 log.append(txt) 
    return log            

x = grabexcelfile()
print type(x[0]),x[0]

查看有关
encode()
的信息。我已经做了至少5个小时了。我尝试使用拉丁语-1和utf-8编码,但没有成功。您是否尝试过
encode('ascii','ignore')
?感谢您的帮助,我尝试过了,但它无法解决我的问题。请显示您用于操纵字符串的代码,以获得
u'L\xc9GENDE'
。如果您不显示不起作用的代码,我们就无法修复不起作用的代码。如果我可以访问python中的字符串“LÉGENDE”,这似乎很好,但当我从excel导入时,我只有“L\xc9GENDE”,我去查看了网站上的文档,但找不到任何帮助。非常感谢。