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中for循环下的索引变量的作用域
Apr 15 Python
python网络编程之文件下载实例分析
May 20 Python
Python django实现简单的邮件系统发送邮件功能
Jul 14 Python
Python enumerate索引迭代代码解析
Jan 19 Python
pycharm运行程序时在Python console窗口中运行的方法
Dec 03 Python
Opencv+Python 色彩通道拆分及合并的示例
Dec 08 Python
在Python中如何传递任意数量的实参的示例代码
Mar 21 Python
python定时任务 sched模块用法实例
Nov 04 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
关于Python字符编码与二进制不得不说的一些事
Oct 04 Python
Python图片验证码降噪和8邻域降噪
Aug 30 Python
python中urllib包的网络请求教程
Apr 19 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对csv文件的读取,写入,输出下载操作详解
2013/08/10 PHP
PHP获取文件行数的方法
2015/06/10 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
瀑布流布局并自动加载实现代码
2013/03/12 Javascript
初始Nodejs
2014/11/08 NodeJs
JavaScript编写简单的计算器
2015/11/25 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
2016/03/01 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
详解使用fetch发送post请求时的参数处理
2017/04/05 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
Vee-Validate的使用方法详解
2017/09/22 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
深入理解Python装饰器
2016/07/27 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
常用的HTML5列表标签
2017/06/20 HTML / CSS
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
高三自我评价
2014/02/01 职场文书
计算机软件专业求职信
2014/06/10 职场文书
公司员工活动策划方案
2014/08/20 职场文书
2014年食堂工作总结
2014/11/20 职场文书
党支部先进事迹材料
2014/12/24 职场文书
实习指导教师评语
2014/12/30 职场文书
夏洛特的网观后感
2015/06/15 职场文书
Python预测分词的实现
2021/06/18 Python
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL