Python2和Python3之间的str处理方式导致乱码的讲解


Posted in Python onJanuary 03, 2019

Python字符串问题

  1. 在arcpy中版本为 python2.x
  2. 在QGIS中版本为 python2.x 或者 python3.x
  3. python2 和python3 之间的str处理方式经常会导致乱码,故出此文

python3版本

# 将str或字节并始终返回str
def to_str(bytes_or_str):
  if isinstance(bytes_or_str, bytes):       
    value = bytes_or_str.decode(‘utf-8')
  else:
    value = bytes_or_str
  return value
# 将str或字节并始终返回bytes
def to_bytes(bytes_or_str):
  if isinstance(bytes_or_str, str):
    value = bytes_or_str.encode(‘utf-8')
  else:
    value = bytes_or_str
  return value

python2版本

- 在python2版本中使用unicode方式

# 接受str或unicode,并总是返回unicode
def to_unicode(unicode_or_str):
  if isinstance(unicode_or_str, str):
    value = unicode_or_str.decode(‘utf-8') 
  else:
    value = unicode_or_str
  return value 
# 接受str或unicode,并总是返回str
def to_str(unicode_or_str):
  if isinstance(unicode_or_str, unicode):     
    value = unicode_or_str.encode(‘utf-8')
  else:
    value = unicode_or_str 
  return value

备注

在python中不管任何版本,都是用 bytes的方式进行读取 写入会极大程度降低出现文本问题

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python 开发Activex组件方法
Nov 08 Python
python复制文件的方法实例详解
May 22 Python
Python操作Word批量生成文章的方法
Jul 28 Python
Python进阶之@property动态属性的实现
Apr 01 Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 Python
Django 源码WSGI剖析过程详解
Aug 05 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
Jan 25 Python
浅谈Python中range与Numpy中arange的比较
Mar 11 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
Jun 15 Python
python中return如何写
Jun 18 Python
python使用matplotlib绘制图片时x轴的刻度处理
Aug 30 Python
python requests 库请求带有文件参数的接口实例
Jan 03 #Python
Python图像处理之颜色的定义与使用分析
Jan 03 #Python
Python在图片中插入大量文字并且自动换行
Jan 02 #Python
python 输出所有大小写字母的方法
Jan 02 #Python
Python高斯消除矩阵
Jan 02 #Python
python遍历小写英文字母的方法
Jan 02 #Python
Python最小二乘法矩阵
Jan 02 #Python
You might like
生成静态页面的PHP类
2006/07/15 PHP
用php实现批量查询清除一句话后门的代码
2008/01/20 PHP
php微信支付接口开发程序
2016/08/02 PHP
php获得刚插入数据的id 的几种方法总结
2018/05/31 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
javascript  Error 对象 错误处理
2008/05/18 Javascript
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
JavaScript电子时钟倒计时
2016/01/09 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
2019/08/17 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
python学习手册中的python多态示例代码
2014/01/21 Python
Python多进程原理与用法分析
2018/08/21 Python
pycharm安装和首次使用教程
2018/08/27 Python
如何利用Python分析出微信朋友男女统计图
2019/01/25 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
2019/03/20 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
北京天润融通.net面试题笔试题
2012/02/20 面试题
shell变量的作用空间是什么
2013/08/17 面试题
企业总经理职责
2014/02/02 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
党员政治学习材料
2014/05/14 职场文书
作风建设剖析材料
2014/10/06 职场文书
2014年统计工作总结
2014/11/21 职场文书
大学生暑假实习总结
2015/07/13 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
详解Redis瘦身指南
2021/05/26 Redis
Python实现简繁体转换
2021/06/07 Python
mysql 获取时间方式
2022/03/20 MySQL