`
Thomas会Coding
  • 浏览: 97531 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

'ascii' codec can't decode byte 0xcc in position 0: ordinal not in range(128)(转)

 
阅读更多

在Django视图函数中经常出现类似于'ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128)的错误。

 

        在解决错误之前,首先要了解unicode和utf-8的区别。
        unicode指的是万国码,是一种“字码表”。而utf-8是这种字码表储存的编码方法。unicode不一定要由utf-8这种方式编成bytecode储存,也可以使用utf-16,utf-7等其他方式。目前大多都以utf-8的方式来变成bytecode。

 

        其次,python中字符串类型分为byte string 和 unicode string两种。
        如果在python文件中指定编码方式为utf-8(#coding=utf-8),那么所有带中文的字符串都会被认为是utf-8编码的byte string(例如:mystr="你好"),但是在函数中所产生的字符串则被认为是unicode string。
        问题就出在这边,unicode string 和 byte string 是不可以混合使用的,一旦混合使用了,就会产生这样的错误。例如:
        self.response.out.write("你好"+self.request.get("argu"))
        其中,"你好"被认为是byte string,而self.request.get("argu")的返回值被认为是unicode string。由于预设的解码器是ascii,所以就不能识别中文byte string。然后就报错了。

 


        以下有两个解决方法:
        1.将字符串全都转成byte string。
            self.response.out.write("你好"+self.request.get("argu").encode("utf-8"))
        2.将字符串全都转成unicode string。
            self.response.out.write(u"你好"+self.request.get("argu"))
            byte string转换成unicode string可以这样转unicode(unicodestring, "utf-8")

 

分享到:
评论

相关推荐

    Zenmap 报’utf8′ codec can’t decode byte 0xc0 in position 0: invalid start byte错误部分解决方案

    本文将深入探讨“utf8 codec can’t decode byte 0xc0 in position 0: invalid start byte”这一错误,以及如何针对Zenmap工具提供部分解决方案。 首先,让我们了解这个错误的含义。UTF-8是一种广泛使用的字符编码...

    解决pyshp UnicodeDecodeError的问题

    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcc in position 0: invalid continuation byte 这个是编解码的问题,解决方法是把版本降到1.2.12就可以了,虽然records里面的中文字段还需要再次解码,但...

    最新Python学习笔记1

    Python中的空值用None表示,它不同于数值0。 输入和输出在Python中非常简单。input()函数允许用户输入信息,并将其存储到变量中,而print()函数则用于将信息输出到屏幕上。print()函数可以打印字符串、整数、浮点数...

    basemap readshapefile UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb4 in position 0-附件资源

    basemap readshapefile UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb4 in position 0-附件资源

    解决此问题

    解决 win10下,idea提交svn报错 CRITICAL: 'ascii' codec can't decode byte 0xb0 in position 1: ordinal not in range(128) 替换 C:\Program Files (x86)\RBTools\Python27\Lib\mimetypes.py

    Jupyter修改默认路径问题(SyntaxError: (unicode error) ‘utf-8’ codec can’t decode byte 0xb5 in position 0)

    Jupyter修改默认路径问题1、问题描述2、总结 1、问题描述 Exception while loading ... File C:\mysoftware\install\anacoda\lib\site-packages\traitlets\config\application.py, line 562, in _load_config_files

    RBTools-0.4.1.

    RBTools 是一个强大的工具集,专门用于帮助软件开发者与基于Review Board的代码审查系统进行交互。这个工具的主要目的是简化代码提交、更新和审查的过程,从而提高团队协作的效率。"RBTools-0.4.1.RMVD编辑"可能是这...

    python解决汉字编码问题:Unicode Decode Error

    ascii codec can't encode characters in position ordinal not in range 128 UnicodeDecodeError: ‘utf8' codec can't decode byte 0x。 如果对于ascii、unicode和utf-8还不了解的小伙伴,可以看之前的这篇文章...

    robotframework-ride-0.55.win32.exe

    非常好用的IDE,对于自动化测试robot framework的编写有很大的作用。

    解决python3读取Python2存储的pickle文件问题

    我在使用python3.5处理一个序列化文件xxx.pk,不过这个.pk文件是我在python2.7...UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 11: ordinal not in range(128) 解决办法: import pickle

    在Python中关于中文编码问题的处理建议

    而且很多时候你会用到一些不属于标准ASCII字符集的字符,这时候代码就很可能抛出UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc4 in position 10: ordinal not in range(128)异常。这种异常在Python中...

    FP-growth python 实现

    类似:'ascii' codec can't decode byte 0xe8 in position 0 的报错,请修改fpgrowth.py中的CreatFPtree中的下面两种: orderedItem = [v[0] for v in sorted(localD.iteritems(), key=lambda p:(p[1], -ord(p[0]))...

    全功能智能车之电路图初成型

    在构建全功能智能车的过程中,电路图的设计是至关重要的一步,因为它构成了整个系统的"神经网络",连接并协调各个模块的运作。"全功能智能车之电路图初成型"标志着项目进入了硬件集成的关键阶段,从描述中我们可以...

    Python字符串的encode与decode研究心得乱码问题解决方法

    为什么会报错“UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-1: ordinal not in range(128)”?本文就来研究一下这个问题。 字符串在Python内部的表示是unicode编码,因此,在做...

    robotframework常见问题之日志不显示&乱码

    解决:进入自己本地python安装目录,修改”C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py”文件方法中”return result.decode(‘UTF-8’)” 改为 “return result.decode(‘gbk’,...

Global site tag (gtag.js) - Google Analytics