将一个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()

最新文章

  1. github常用操作
  2. JavaScript RegExp 对象(来自w3school)
  3. js中substring与substr的学习。
  4. Oracle 创建/删除 表空间、用户、授权
  5. UIWebView如何获取内容高度
  6. linux之eval用法(高级bash程序员的必修之技)
  7. [php]使用会话session
  8. python 函数性能分析
  9. HTML标签语义对照表
  10. PureMVC(JS版)源码解析:总结
  11. 如何把powerpoint幻灯片大小改为标准或宽屏教程【图文】
  12. Ruby on Rails 實戰聖經阅读(三)
  13. Java程序性能优化读书笔记(一):Java性能调优概述
  14. linux shell中单引号、双引号和没有引号的区别
  15. iOS动态性:动态添加属性的方法——关联(e.g. 向Category添加属性)
  16. [: 11: y: unexpected operator问题
  17. 自定义Loader
  18. SqlServer 将纯数字的时间转换为DateTime
  19. Hive 导入 parquet 格式数据
  20. MongoDB的导入与导出

热门文章

  1. Web Worker
  2. NSClassFromString 和 遍历UIView获取她所在的UIViewController的tips
  3. 常用机器视觉工具----图像分析工具(blob分析)
  4. background属性
  5. Redis总结(一)Redis安装
  6. 【Delphi】GIF 动画建立
  7. win8.1企业版 IIS8.5 安装php5.5.18详细图文
  8. queryString(正则表达式版本)
  9. Last-Modify和Etag
  10. Centos6.5搭建java开发环境