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 functools模块学习总结
May 09 Python
python实现用户登录系统
May 21 Python
python机器学习之神经网络(三)
Dec 20 Python
python爬虫爬取淘宝商品信息
Feb 23 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
Python中extend和append的区别讲解
Jan 24 Python
Python 限制线程的最大数量的方法(Semaphore)
Feb 22 Python
python异步存储数据详解
Mar 19 Python
200行python代码实现贪吃蛇游戏
Apr 24 Python
Python基于tkinter canvas实现图片裁剪功能
Nov 05 Python
python 用Matplotlib作图中有多个Y轴
Nov 28 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
Jan 21 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+DBM的同学录程序(4)
2006/10/09 PHP
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
JS获取父节点方法
2009/08/20 Javascript
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
高效的获取当前元素是父元素的第几个子元素
2013/10/15 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
2014/04/07 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
详解webpack分包及异步加载套路
2017/06/29 Javascript
JavaScript之DOM_动力节点Java学院整理
2017/07/03 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
2017/10/18 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
[01:02:46]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python简单实现计算过期时间的方法
2015/06/09 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
利用Python实现Windows定时关机功能
2017/03/21 Python
Python实现嵌套列表去重方法示例
2017/12/28 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
网络编辑岗位职责
2014/03/18 职场文书
仓库统计员岗位职责
2015/04/14 职场文书
2016十一国庆节慰问信
2015/12/01 职场文书
小型企业的绩效考核制度模板
2019/11/21 职场文书
Redis基本数据类型String常用操作命令
2022/06/01 Redis