此代码:
print u'S\xe9parateur'
str(u'S\xe9parateur')
抛出错误:
Séparateur
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 1: ordinal not in range(128)
我使用了函数str,因为我想将unicode字符串u'S\xe9parateur'
转换为相应的ascii字符串,即u'S\xe9parateur'
- > 'S\xc3\xa9parateur'
答案 0 :(得分:2)
这不是相应的ASCII字符串,它是UTF-8字符串。 ASCII,定义上,不能代表整个Unicode范围; UTF-8可以。
要执行转换,请使用.encode
对象的unicode
方法:
u'S\xe9parateur'.encode('utf-8')
生成'S\xc3\xa9parateur'
。