Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django存储在非ascii字符上失败_Python_Django_Django Storage - Fatal编程技术网

Python Django存储在非ascii字符上失败

Python Django存储在非ascii字符上失败,python,django,django-storage,Python,Django,Django Storage,我在静态文件夹中有一个名为foobar BarỏFoo.pdf的静态文件。 当我在浏览器中查看名为/static/Foo Bar BarỏFoo.pdf的文件时,它会呈现良好效果 但这里有一个场景,我需要查看该文件是否存在。 我正在使用django存储来检查该文件 path=u'Foo-Bar-BaröFoo.pdf' storage.exists(path) 它失败了 UnicodeEncodeError: 'ascii' codec can't encode character u'

我在静态文件夹中有一个名为
foobar BarỏFoo.pdf
的静态文件。 当我在浏览器中查看名为
/static/Foo Bar BarỏFoo.pdf
的文件时,它会呈现良好效果

但这里有一个场景,我需要查看该文件是否存在。 我正在使用django存储来检查该文件

path=u'Foo-Bar-BaröFoo.pdf'
storage.exists(path)
它失败了

UnicodeEncodeError: 'ascii' codec can't encode character u'\xf6' in position 40: ordinal not in range(128)
解决这个问题的办法是什么?也许是一些编码/解码

已经试过了 例外情况:

SuspiciousFileOperation: Suspicio...8f3f6)',)

必须在脚本顶部使用以下编码标识符,并且应以UTF-8格式保存文件:

# coding=utf-8
如果您使用的是Python 2.x,那么还必须使用
u
前缀:

path = u'Foo-Bar-BaröFoo.pdf'
详细解释如下:

要定义源代码编码,必须有一个神奇的注释 可以作为第一个或第二个文件放置到源文件中 文件中的行,例如:

# coding=<encoding name>
#编码=

必须在脚本顶部使用以下编码标识符,并且应以UTF-8格式保存文件:

# coding=utf-8
如果您使用的是Python 2.x,那么还必须使用
u
前缀:

path = u'Foo-Bar-BaröFoo.pdf'
详细解释如下:

要定义源代码编码,必须有一个神奇的注释 可以作为第一个或第二个文件放置到源文件中 文件中的行,例如:

# coding=<encoding name>
#编码=

默认情况下,当我从mongo获取路径时,调用
exists()
失败时,我会得到
path=u'/static/Foo Bar\xf6Foo.pdf'
。不是路径中的
\xf6
似乎
\xf6
正在替换为文件名中的特殊字符/符号,如
Bar\xfsfo
@NiviD是的,这是真的,它会错误为
可疑文件操作
您能检查它何时何地被替换吗?默认情况下,当我从mongo获取路径时,调用
exists()
失败时,我得到
path=u'/static/Foo Bar\xf6Foo.pdf'
。不是路径中的
\xf6
似乎
\xf6
正在用文件名中的特殊字符/符号替换,如
Bar\xfsfo
@NiviD是的,这是真的,它会出错为
可疑文件操作
您能检查它何时何地被替换吗?