我在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/

10-09 20:00