使用python的WSGI接口做的一个web应用,浏览器访问出现中文的时候显示乱码 30

server.py:#-*-coding:utf-8-*-__author__='Administrator'#server.py#从wsgiref模块导入:fromws... server.py:
# -*- coding: utf-8 -*-
__author__ = 'Administrator'
# server.py
# 从wsgiref模块导入:
from wsgiref.simple_server import make_server
# 导入我们自己编写的application函数:
from hello import application

# 创建一个服务器,IP地址为空,端口是8000,处理函数是application:
httpd = make_server('', 8000, application)
print "Serving HTTP on port 8000..."
# 开始监听HTTP请求:
httpd.serve_forever()

hello.py:
# -*- coding: utf-8 -*-
import sys

__author__ = 'Administrator'
def application(environ, start_response):
reload(sys)
sys.setdefaultencoding('utf8')
start_response('200 OK', [('Content-Type', 'text/html')])
path_info = environ['PATH_INFO'][1:]
#path_info = path_info.decode('gb2312').encode('gb2312')
print type(path_info)
print path_info
return '<h1>Hello, %s!</h1>' % (path_info or 'web')

============分割线===============

我想转码 但是报错 以下是我转码的代码

#path_info = path_info.decode('gb2312').encode('gb2312')

报错内容:
Traceback (most recent call last):
File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run
self.result = application(self.environ, self.start_response)
File "/home/lin/share/temp/hello.py", line 10, in application
path_info = path_info.decode('gb2312').encode('gb2312')
UnicodeDecodeError: 'gb2312' codec can't decode bytes in position 0-1: illegal multibyte sequence
展开
 我来答
老夭来了
2015-03-26 · 知道合伙人软件行家
老夭来了
知道合伙人软件行家
采纳数:1806 获赞数:8100
2008年从事软件开发,拥有多年的python,php,linux工作经验,发布过多个python,php的开源项目。

向TA提问 私信TA
展开全部
我这边没有报错,你的文件编码是utf8的,你的path_info编码应该也是utf8的,不应该使用gb2312解码呀。

如果解决了您的问题请采纳!
如果未解决请继续追问
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式