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 27 Python
Python正则表达式经典入门教程
May 22 Python
Python实现获取磁盘剩余空间的2种方法
Jun 07 Python
浅谈用Python实现一个大数据搜索引擎
Nov 28 Python
numpy中的高维数组转置实例
Apr 17 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
对Python3 pyc 文件的使用详解
Feb 16 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
使用jupyter notebook运行python和R的步骤
Aug 13 Python
Python常用断言函数实例汇总
Nov 30 Python
python 基于DDT实现数据驱动测试
Feb 18 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 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
php xml留言板 xml存储数据的简单例子
2009/08/24 PHP
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
2016/04/02 PHP
PHP对象实例化单例方法
2017/01/19 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
js Array对象的扩展函数代码
2013/04/24 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
2015/10/22 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
jQuery事件详解
2017/02/23 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
bootstrap table动态加载数据示例代码
2017/03/25 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
解读ES6中class关键字
2017/11/20 Javascript
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
python迭代器的使用方法实例
2013/11/21 Python
Python实现简单字典树的方法
2016/04/29 Python
Python3中简单的文件操作及两个简单小实例分享
2017/06/18 Python
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
Python socket实现简单聊天室
2018/04/01 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
flask 实现token机制的示例代码
2019/11/07 Python
如何使用python代码操作git代码
2020/02/29 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
巴西手表购物网站:eclock
2019/03/19 全球购物
《水上飞机》教学反思
2014/04/10 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
高中生逃课检讨书
2014/10/10 职场文书
职工培训工作总结
2015/08/10 职场文书
公司借款担保书
2015/09/22 职场文书