Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.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 独角兽/蟒蛇3_Python_Django_Encoding_Utf 8_Ascii - Fatal编程技术网

Python 独角兽/蟒蛇3

Python 独角兽/蟒蛇3,python,django,encoding,utf-8,ascii,Python,Django,Encoding,Utf 8,Ascii,无法使用编码解决典型问题。通过post接收Cyrrlic文本并引发错误 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128) 文本键本身有一个外观,它必须是俄语的西里尔文字:u'\u043f\u0440\u043e' 在那次错误之后,我尝试了这种方法,还有一些其他方法: key = key.decode('ascii').encode('utf8') 或: 在本地工作时,仅在生产中

无法使用编码解决典型问题。通过post接收Cyrrlic文本并引发错误

'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
文本键本身有一个外观,它必须是俄语的西里尔文字:u'\u043f\u0440\u043e'

在那次错误之后,我尝试了这种方法,还有一些其他方法:

  key = key.decode('ascii').encode('utf8')
或:

在本地工作时,仅在生产中引发错误。生产中的Python系统编码是utf8

编辑:为了把事情弄清楚。表单处理程序函数出现错误(同样,在本地工作,在生产环境中不工作)

所以它是从输入表单接收到的str,此时首先出现错误,所以我认为它必须被解码,但这并没有帮助

更多回溯:

UnicodeEncodeError at /search/

“ascii”编解码器无法对位置0-2的字符进行编码:序号不在范围(128)内。

您将使用unicode编码。
.encode(“utf-8”)
,我看不出解码在任何地方都能起作用,因为str对象在python3中没有解码,非常确定您使用的是python2。@Padraickenningham现在我知道您可能是对的。只是在vps中安装了系统范围的python2,而virtualenv是python3,所以我确信它使用的是python3,就我而言,总是在激活“source-venv/bin/activate”和“python-manage.py-shell”之后打开pythonshell,而python3就是这样selected@PadraicCunningham实际上现在它的“str”对象没有“decode”属性,所以是python 3,你到底是怎么得到错误的,实际的回溯是什么?您对str的具体操作是什么?我确实记得以前服务器进程的语言环境设置不同,我试图在这里找到旧的问题/答案。您可以使用unicode
.encode(“utf-8”)
,我看不出解码在任何地方都是如何工作的,因为str对象在python3中没有解码,非常确定您使用的是python2。@padraiccanningham现在我看到您可能是对的。只是在vps中安装了系统范围的python2,而virtualenv是python3,所以我确信它使用的是python3,就我而言,总是在激活“source-venv/bin/activate”和“python-manage.py-shell”之后打开pythonshell,而python3就是这样selected@PadraicCunningham实际上现在它的“str”对象没有“decode”属性,所以是python 3,你到底是怎么得到错误的,实际的回溯是什么?您对str到底做了什么?我确实记得以前服务器进程的区域设置不同,我试图在这里找到旧的问题/答案。
def search(request):
     if request.method == 'POST':
        key = request.POST.get("key")
        if key is not None:
        ..
UnicodeEncodeError at /search/