我正在编写一些代码来解析文本,并且在其中一个变量中,我可以有文本或整数,所以为了打印它,我执行 str:
Variable=str(input)
它工作正常,但如果输入包含特定于语言的字符:“ñ”,它将无法工作,引发以下错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 9: ordinal not in range(128)
如何避免这种情况?
我敦促您首先开始阅读 Unicode:
每个软件开发人员绝对、绝对必须了解 Unicode 和字符集(没有任何借口!)作者:Joel Spolsky
Python Unicode HOWTO
Ned Batchelder 的实用 Unicode
在你继续之前。
您需要使用特定编码对值进行编码; 使用默认编码 ASCII,这对于您的某些值失败。unicode()
str()
可以使用以下unicode.encode()
方法进行显式编码:
Variable = input.encode('utf8')
但您需要选择适合您的问题域的编码。