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简单文本处理的方法
Jul 10 Python
利用Python脚本实现ping百度和google的方法
Jan 24 Python
利用Python批量提取Win10锁屏壁纸实战教程
Mar 27 Python
Python批量发送post请求的实现代码
May 05 Python
Python 类的特殊成员解析
Jun 20 Python
利用python实现对web服务器的目录探测的方法
Feb 26 Python
python中for循环变量作用域及用法详解
Nov 05 Python
Python中类似于jquery的pyquery库用法分析
Dec 02 Python
解决Python import docx出错DLL load failed的问题
Feb 13 Python
使用matplotlib动态刷新指定曲线实例
Apr 23 Python
Python替换NumPy数组中大于某个值的所有元素实例
Jun 08 Python
Django生成数据库及添加用户报错解决方案
Oct 09 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中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
关于php几种字符串连接的效率比较(详解)
2017/02/22 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
用户注册常用javascript代码
2009/08/29 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
利用node实现一个批量重命名文件的函数
2017/12/21 Javascript
express.js中间件说明详解
2019/03/19 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
2020/03/07 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
numpy.linalg.eig() 计算矩阵特征向量方式
2019/11/29 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
python爬取代理ip的示例
2020/12/18 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
Lampegiganten丹麦:欧洲领先的照明网上商店
2018/04/25 全球购物
班主任新年寄语
2014/04/04 职场文书
企业文化理念标语
2014/06/10 职场文书
老乡会致辞
2015/07/28 职场文书
redis数据一致性的实现示例
2022/03/18 Redis