繁体   English   中英

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

[英]How to convert a string with unicode in it to unicode using python

我在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()

这将有效,我将在A1单元格中获得LÉGENDE

但如果我试图操纵一个字符串,我已经给你了\\ x \\ 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]

印刷品给我:文字:u'L \\ xc9GENDE'

尝试这个。

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

你可以在这里参考更多 - > 在Python中将Unicode字符串转换为字符串(包含额外的符号)

而不是试图操纵文本: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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM