在处理xml格式的svn日志时,我在脚本中意外地遇到了一个错误。
错误消息是:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-9: ordinal not in range(128)
通过调试输入数据,我发现了问题所在。下面是一个例子:
^{pr2}$
你能解释一下格式有什么问题吗?
似乎它在字符串字节之前看到了u,并尝试从UTF8解码它。
然而,在Python3中,上面的示例可以正常工作。在
Tags:
您正在混合Unicode和字节字符串值。使用unicode格式:
演示:
^{pr2}$在python3中,字符串默认为unicode值;在python2中,
u"..."
表示unicode值,而常规字符串("..."
)是byte字符串。在将字节字符串和unicode值混合使用默认的编解码器(ASCII)进行自动编码或解码,这就是这里发生的事情。
str.format()
方法必须将Unicode值编码为字节字符串以进行插值。在相关问题 更多 >
编程相关推荐