#!python2
#coding:utf8
import re
supportProjectDict = {u'名字':u'马克'} # Note Unicode strings
line = '名字, 有空吗?' # Note NOT Unicode string.
for key, value in supportProjectDict.iteritems():
line = re.sub(r'%s,' % key, r'%s,' % value, line.decode('utf-8'), flags=re.UNICODE)
print line
这很管用。我使用明显的非ASCII字符串进行测试:
最好在任何地方都使用Unicode:
^{2}$格式字符串在这个实例中并不重要,因为它们是ASCII,python2将
.decode('ascii')
隐式地转换为Unicode字符串,但最好是显式的。仅供参考,Python3不进行隐式编码/解码,因此更容易捕获这些错误。在每次使用变量时都需要使用
.decode('utf8')
,并且.encode("utf8")
结果和所有字符串都应作为Unicode字符串传递:见IDEONE demo
相关问题 更多 >
编程相关推荐