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中每次处理一个字符的5种方法
May 21 Python
Python基于回溯法子集树模板解决数字组合问题实例
Sep 02 Python
python3实现域名查询和whois查询功能
Jun 21 Python
python3.6利用pyinstall打包py为exe的操作实例
Oct 31 Python
使用Python进行目录的对比方法
Nov 01 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
Jun 13 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
Jun 25 Python
python实现日志按天分割
Jul 22 Python
Python实现时间序列可视化的方法
Aug 06 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
详解Python绘图Turtle库
Oct 12 Python
python中Ansible模块的Playbook的具体使用
May 28 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
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
smarty半小时快速上手入门教程
2014/10/27 PHP
php建立Ftp连接的方法
2015/03/07 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
2018/03/12 PHP
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
2016/08/03 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
JavaScript实现预览本地上传图片功能完整示例
2019/03/08 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
Python实现 多进程导入CSV数据到 MySQL
2017/02/26 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
如何基于python操作excel并获取内容
2019/12/24 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
python 读取、写入txt文件的示例
2020/09/27 Python
戴森美国官网:Dyson美国
2016/09/11 全球购物
计算机专业自我鉴定
2013/10/15 职场文书
大型活动策划方案
2014/01/12 职场文书
保护环境倡议书100字
2014/05/19 职场文书
工程负责人任命书
2014/06/06 职场文书
会计主管竞聘书
2015/09/15 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书