2024-09-29 02:23:19 发布
网友
有问题吗 UnicodeEncodeError('ascii',u'相位\u2013 II',6,7,'序号不在范围内(128)') 基本上我在这里做的是从excel表中读取值 和工作表包含此格式的地址
Phase- II
所以想知道如何改变
到str
谢谢
`
Excel主要使用cp1252,请尝试以下操作:
>>> somestring.encode('cp1252', 'replace') 'Phase \x96 II' >>> print somestring.encode('cp1252', 'replace') Phase – II
这不会给你一个ascii字符串(因为你的unicode字符串包含非ascii字符,它不能),但它确实提供了一个字节字符串,如果你把它写入csv文件,Excel将正确解释它。在
如果您只想打印它以供显示,那么您将需要知道用于显示文本的任何内容的输出编码:我从idle复制了这个示例,至少在我的系统上会显示cp1252,但是如果您在命令提示符下打印它,则可能会有另一个有效的编码。如果需要,请使用DOS chcp命令选择适当的编码,因为默认编码可能不支持该字符:
使用“replace”参数进行编码意味着,如果您设法得到任何不能解释为cp1252的字符,那么这些字符将被问号代替。在
Excel主要使用cp1252,请尝试以下操作:
这不会给你一个ascii字符串(因为你的unicode字符串包含非ascii字符,它不能),但它确实提供了一个字节字符串,如果你把它写入csv文件,Excel将正确解释它。在
如果您只想打印它以供显示,那么您将需要知道用于显示文本的任何内容的输出编码:我从idle复制了这个示例,至少在我的系统上会显示cp1252,但是如果您在命令提示符下打印它,则可能会有另一个有效的编码。如果需要,请使用DOS chcp命令选择适当的编码,因为默认编码可能不支持该字符:
^{pr2}$使用“replace”参数进行编码意味着,如果您设法得到任何不能解释为cp1252的字符,那么这些字符将被问号代替。在
相关问题 更多 >
编程相关推荐