繁体   English   中英

如何在python中编码/解码\\ xbe?

[英]How can I encode/decode \xbe in python?

我有一个使用xlrd模块在python中读取的excel文件。 我正在从每一行提取值,添加一些其他数据并将其全部写到新的文本文件中。 但是,我遇到了包含分数为3/4的文本的单元格的问题。 Python将值读取为\\ xbe,每次遇到它时,都会出现此错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xbe' in position 317: ordinal not in range(128)

我将每行的值列表转换为字符串,尝试了以下操作但未成功:

row_vals_str = [unicode(str(val), 'utf-8') for val in row_vals]
row_vals_str = [str(val).encode('utf-8') for val in row_vals]
row_vals_str = [str(val).decode() for val in row_vals]

每次我第一次碰到3/4分数时,我都会得到相同的错误。

如何将其转换为可以写入文本的内容?

我遇到了这个线程,但没有找到答案: 如何在Python中将\\ xXY编码的字符转换为UTF-8?

是拉丁1组。 您可以使用latin1解码字符,如果不需要,可以替换为其他字符。

http://www.codetable.net/hex/be

>>> '\xbe'.decode('latin1')
u'\xbe'
>>> '\xbe'.decode('cp1252')
u'\xbe'


>>> '\xbe this is a test'.replace('\xbe','3/4')
'3/4 this is a test'

实际工作的最终结果是解码字符串,然后对其进行编码,然后替换:

row_vals_str = [str(val).decode('latin1').encode('utf8').replace(r'\xbe', '3/4') for val in row_vals]

暂无
暂无

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

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