扣丁学堂简述如何解决Python2和Python3之间str处理方式导致乱码

Python2和Python3之间的str处理方式导致乱码后应该怎么办呢?本篇文章扣丁学堂Python培训小编给小伙伴分享一下如何解决Python2和Python3之间的str处理方式导致乱码问题,文中有代码列出供大家参考,现在分享给大家,具有很好的参考价值,希望对小伙们有帮助。

扣丁学堂简述如何解决Python2和Python3之间str处理方式导致乱码

Python培训

Python字符串问题:

在arcpy中版本为 python2.x

在QGIS中版本为 python2.x 或者 python3.x

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培训官网、微信等平台,扣丁学堂IT职业在线学习教育有专业的Python讲师为您指导,此外扣丁学堂老师精心推出的Python视频教程定能让你快速掌握Python从入门到精通开发实战技能。

Python全栈开发爬虫人工智能机器学习数据分析免费公开课直播间:https://ke.qq.com/course/327534?flowToken=1008607

相关推荐