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函数返回多个值的示例方法
Dec 04 Python
发布你的Python模块详解
Sep 15 Python
win10环境下python3.5安装步骤图文教程
Feb 03 Python
Django ManyToManyField 跨越中间表查询的方法
Dec 18 Python
python钉钉机器人运维脚本监控实例
Feb 20 Python
python做反被爬保护的方法
Jul 01 Python
python3 动态模块导入与全局变量使用实例
Dec 22 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 Python
利用python调用摄像头的实例分析
Jun 07 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 24 Python
python使用shell脚本创建kafka连接器
Apr 29 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
May 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实现的验证码文件类实例
2015/06/18 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
PHP实现Redis单据锁以及防止并发重复写入
2018/04/10 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
javascript的键盘控制事件说明
2008/04/15 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
layui导航栏实现代码
2017/05/19 Javascript
JavaScript继承的特性与实践应用深入详解
2018/12/30 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
js实现缓动动画
2020/11/25 Javascript
python实现问号表达式(?)的方法
2013/11/27 Python
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
python多进程控制学习小结
2018/10/31 Python
python实现kmp算法的实例代码
2019/04/03 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
python实现控制COM口的示例
2019/07/03 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
Python3搭建http服务器的实现代码
2020/02/11 Python
Python任务调度模块APScheduler使用
2020/04/15 Python
微信浏览器取消缓存的方法
2015/03/28 HTML / CSS
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
校园之声广播稿
2014/01/31 职场文书
财务支持类个人的自我评价
2014/02/14 职场文书
实用的简历自我评价
2014/03/06 职场文书
社区科普工作方案
2014/06/03 职场文书
美丽人生观后感
2015/06/03 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL
小程序实现文字循环滚动动画
2021/06/14 Javascript
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android