首页 > 编程 > Python > 正文

Python2和Python3之间的str处理方式导致乱码的讲解

2020-01-04 13:37:57
字体:
来源:转载
供稿:网友

Python字符串问题

  1. 在arcpy中版本为 python2.x
  2. 在QGIS中版本为 python2.x 或者 python3.x
  3. python2 和python3 之间的str处理方式经常会导致乱码,故出此文

python3版本

# 将str或字节并始终返回strdef 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或字节并始终返回bytesdef 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,并总是返回unicodedef 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,并总是返回strdef 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的方式进行读取 写入会极大程度降低出现文本问题

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对VEVB武林网的支持。


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表