zoukankan      html  css  js  c++  java
  • python 编码 UnicodeDecodeError

    将一个py脚本从Centos转到win运行,出错如下:

    UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence

    虽然明白是编码的问题,网络上decode()什么的,貌似不适用python3。后来发现使用字节方式打开可以。出错函数如下:gridfs.GridFS.put()函数。其中调用了读写操作

    If you want raw bytes then you need to open it in binary mode.

    pipe = open('/dev/input/js0','rb')


    附上一篇关于python编码的帖子

    1. pyhton的所有内置库、方法接受的是unicode编码的字符串。

    2. str.decode 函数就是转成unicode编码,所以能decode的字符串传进python的内置库、函数都能正确运行。

    3.问题在于这个decode函数解码时到底要传哪个参数:utf-8,gbk,gb2312......等N种编码。参数不当,就会抛类似异常:

    UnicodeDecodeError: 'gbk' codec can't decode bytes in position 2-3: illegal multibyte sequence

       UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-1: invalid data

    下面举个例子:

    1. #coding:utf-8    
    2. #指定本文件编码为utf8  
    3. import os  
    4. # 以下为示例代码,不一定能运行。随意写的,无编译运行过。  
    5. # 例子以XP平台为例,因为linux平台编码(UTF-8)与window平台(GBK)不一样。  
    6. # 假设D盘下面有很多中文名称文件  
    7. filelist = os.listdir(r"d:\") # 此处返回的list中的中文是以GBK编码的,你可以通过查看cmd窗口属性看到。  
    8. for path in filelist:  
    9.     if os.path.isdir(path): continue  
    10.      fp = open(path.decode("GBK") , 'rb')  # 如果此处用 path.decode("UTF-8") 就会抛异常,原因是wind的dir命令返回的是GBK编码  
    11.     print len(fp.read())  
    12.      fp.close()  
    13. filepath =r"d:\中文文件.doc"             # 假设此文存在,记得要带中文  
    14. fp = open(filepath.decode('utf-8'), "rb") #这里使用utf8参数进行解码,原因是文件头里有句coding: utf-8  
    15. print len(fp.read())  
    16. fp.close()  
    17. path2 = u"d:\中文文件.doc"  # 假如这里有个u在前面,这个变量就是unicode编码了,不用解码。  
    18. fp = open(path2, 'rb')  
    19. print len(fp.read())  
    20. fp.close()  
  • 相关阅读:
    [语录]学习和知识建立于见解的多样性上
    [语录]要紧的是选择能干、诚实而且勤勉的人
    [EnterpriseServices]利用assembly定义我们的组件在COM+中的注册方式
    [EntLib]在SR.Strings中使用中文字符串资源
    如何让Win2000和XP SP1支持System.EnterpriseServices(XP已验证)
    [C#]使用HttpWebRequest请求远端服务器时如何加载SSL证书
    [纪事]再见,CodeArtist(下)
    [ZT]Google Web Accelerator 进一步的发展?
    [纪事]再见,CodeArtist
    [WiX]我的第一个WiX安装脚本
  • 原文地址:https://www.cnblogs.com/bigbigtree/p/3238441.html
Copyright © 2011-2022 走看看