如果你对Python Django中的项目的实际应用操作方案有不解之处的话,你可以通过我们的文章对Python Django中的项目在实际操作有一个详细的介绍,以下就是文章内容的具体介绍。望你会有所收获。
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了申扎免费建站欢迎大家使用!
Python Django项目中报
- 'ascii' codec can't decode byte 0xe6 in position
15: ordinal not in range(128)
现在来跟踪一下这个BUG。看一下要如何解决第一种情况:
- try:
- return HttpResponse("")
- except Exception,e:
- logging.debug(e)
这样的写就报这个错了。初步我感觉问题应该是出在:JS写法上面导致的!网上追踪:一个很关键的并且要常记住的,就是代码中所有字符串都统一使用unicode,而不是str。这样,自己就能很清楚要处理的字符串类型了。请记住,是所有,任何地方。
- >>s1 = u'%s欢迎你' % u'北京'
- >>s1
输出:
- u'\u5317\u4eac\u6b22\u8fce\u4f60'
得到的是unicode编码形式
- >>print s1
返回的就是 欢迎你北京
- >>s1 = '%s欢迎你' % '北京'
- >>s1
输出:
- '\xb1\xb1\xbe\xa9\xbb\xb6\xd3\xad\xc4\xe3'
返回字符串编码>>print s1 返回的就是 欢迎你北京但是如果这样写:>>s1 = u'%s欢迎你' % '北京'则报:
- UnicodeDecodeError: 'ascii' codec can't decode
byte 0xb1 in position 0: or- not in range(128)
同样的如果这样写:>>s1 = '%s欢迎你' % u'北京'一样的会报这样的错误!总结:如果想使用%s 的格式化输出的方式的话就必须要注意其前后两者的编码方式保持一致。要不然就会报这种错误!
由UnicodeDecodeError可猜想得到,解析器尝试使用ascii对'%s欢迎您!'进行解码,由于'%s欢迎您!'实际是使用utf-8编码的(这是我系统终端默认的),所以使用ascii解码肯定会错'%s欢迎你' 解析器会尝试使用ascii对其做解码处理。由于默认我们为utf-8所以出错
PS: 引自一段对话摘要如下:
str转成unicode不是直接构造,是用str对象的decode方法。str的编码是与系统环境相关的,一般就是sys.getfilesystemencoding()得到的值unicode你可以不管它是怎么存的,就把它看做是系统能够识别其中内容的文本类型所以从unicode转str,被看做是把一个信息文本编码为二进制字节流的过程,要用encode方法.
从str转unicode,看作是从二进制串出解读出有意义的信息文本,所以要用decode其中的str 可以看成是一个对象处理!现在我将代码写成如下:
- return
- HttpResponse("
- " % app_id.decode('utf-8'))
还是继续报。想起来之前遇到的BT问题。解决办法:
- return HttpResponseRedirect("/serverinfolist/levels/?t_id="+app_id)
这样就可以解决了。
【编辑推荐】
新闻名称:Python Django中的项目中报的实际应用方案简介
网站地址:http://www.shufengxianlan.com/qtweb/news14/110214.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联