Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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 urllib.urlencode中的Unicode错误-在我的Django Web应用程序中_Python_Django_Unicode_Urllib - Fatal编程技术网

Python urllib.urlencode中的Unicode错误-在我的Django Web应用程序中

Python urllib.urlencode中的Unicode错误-在我的Django Web应用程序中,python,django,unicode,urllib,Python,Django,Unicode,Urllib,\大家好 用户正在向提交到my django视图的文本框中输入unicode值(u'\u2206')。视图使用GET数据生成URL,以便稍后返回到搜索页面 当用户提交unicode字符时,它无法生成URL 这里的最佳实践是什么。我应该在将get数据发送到urlencode之前对其进行编码吗?我应该使用什么编码 相关代码: search_form = SearchForm(request.GET) get_data = dict([(key,item) for (key,item) in sear

\大家好

用户正在向提交到my django视图的文本框中输入unicode值(u'\u2206')。视图使用GET数据生成URL,以便稍后返回到搜索页面

当用户提交unicode字符时,它无法生成URL

这里的最佳实践是什么。我应该在将get数据发送到urlencode之前对其进行编码吗?我应该使用什么编码

相关代码:

search_form = SearchForm(request.GET)
get_data = dict([(key,item) for (key,item) in search_form.data.items()])
get_params = '&' + urllib.urlencode(query=get_data.items())
错误: 回溯(最近一次呼叫最后一次):


在URL编码之前编码为UTF-8

  File "/opt/python/lib/python2.7/site-packages/django/core/handlers/base.py", line 100, in get_response
    response = callback(request, *callback_args, **callback_kwargs)

  File "/opt/python/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 25, in _wrapped_view
    return view_func(request, *args, **kwargs)

  File "/opt/DjangoProjects/Fly/FlyStore/views.py", line 465, in search
    get_params = '&' + urllib.urlencode(query=get_data.items())

  File "/opt/python/lib/python2.7/urllib.py", line 1282, in urlencode
    v = quote_plus(str(v))

UnicodeEncodeError: 'ascii' codec can't encode character u'\u2206' in position 15: ordinal not in range(128)