我在Python2.7中遇到unicode问题。关键是,我从数据库中获取了一些数据,并将其存储在一个名为country的变量中,其值为u“ Espa \ xf1a”。
如果我去壳写以下内容:
>>>country
>>>u"Espa\xf1a"
>>>print country
>>>España
没关系。没问题。当我尝试如下创建一个名为España.txt的文件时,就会出现问题:
>>> country = u"Espa\xf1a"
>>> file = "%s.txt" % country
>>> file
u'Espa\xf1a.txt'
>>> print file
España.txt
>>> os.system("touch %s" % file)
Traceback (most recent call last):
File "<console>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 10: ordinal not in range(128)
我不知道为什么会这样。有人可以帮我吗?提前致谢!
最佳答案
尝试:
os.system("touch %s" % file.encode('utf-8'))
关于python - 带有奇怪字符的Python unicode文件名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33413309/