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中使用Queue和Condition进行线程同步的方法
Jan 19 Python
Python制作简易注册登录系统
Dec 15 Python
python 如何快速找出两个电子表中数据的差异
May 26 Python
用python制作游戏外挂
Jan 04 Python
Python实现PS滤镜中马赛克效果示例
Jan 20 Python
Python实现端口检测的方法
Jul 24 Python
python使用matplotlib绘制雷达图
Oct 18 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
Dec 12 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
Mar 18 Python
Django如何使用jwt获取用户信息
Apr 21 Python
python中翻译功能translate模块实现方法
Dec 17 Python
Python OpenCV快速入门教程
Apr 17 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 学习路线与时间表
2010/02/21 PHP
php两种无限分类方法实例
2015/04/21 PHP
Laravel 实现关系模型取出需要的字段
2019/10/10 PHP
Javascript中暂停功能的实现代码
2007/03/04 Javascript
JavaScript 比较时间大小的代码
2010/04/24 Javascript
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
Javascript 编码约定(编码规范)
2018/03/11 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
使用Python实现windows下的抓包与解析
2018/01/15 Python
Python面向对象之继承代码详解
2018/01/29 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
美国知名日用品连锁超市:Dollar General(多来店)
2017/01/14 全球购物
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
光声世纪笔试题目
2012/08/25 面试题
社区七一党员活动方案
2014/01/25 职场文书
食堂标语大全
2014/06/11 职场文书
材料采购员岗位职责
2015/04/03 职场文书
优质服务标语口号
2015/12/26 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
给原生html中添加水印遮罩层的实现示例
2021/04/02 Javascript