Python2和Python3之间的str处理方式导致乱码的讲解
作者:staHuri 发布时间:2022-10-01 09:46:53
标签: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的方式进行读取 写入会极大程度降低出现文本问题
来源:https://blog.csdn.net/staHuri/article/details/82421044


猜你喜欢
- profiling是个很好用的mysql性能分析工具,今儿就来试验下profiling的功能。感谢 有爱玫瑰的博文:mysql 的 sql
- 问题简述在 Windows 系统上,我使用 Python 3.11 的 pip 工具安装 lxml 等库时会出现以下报错:error: Mi
- 首先让我祭出一张数学王子高斯的照片,这位印在德国马克上的神人有多牛呢? 他是近代数学的奠基人之一,与牛顿, 阿基米德并称顶级三大数学家,随便
- 前言本文提供在在无音频的视频中添加音频的python工具,附上代码。环境依赖ffmpeg环境安装,可以参考:windows ffmpeg安装
- 链表一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结
- 一、前言MySQL 的锁按照范围可以分为全局锁、表锁、行锁,其中行锁是由数据库引擎实现的,并不是所有的引擎都提供行锁,MyISAM 就不支持
- 目录主页分析代码:修改视图函数返回值修改 URL 规则修改视图函数名总结追溯到最初,Flask 诞生于 Armin Ronacher 在 2
- 以连续3天为例,使用工具:MySQL。1.创建SQL表:create table if not exists orde(id varchar
- 本文实例为大家分享了python遍历文件目录、批量处理同类文件的具体代码,供大家参考,具体内容如下目录操作1、获取当前目录import os
- 大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用。为什么要使用Cookie呢?Cookie,指
- 前言??在vue项目中我们常常需要用到computed和watch,那么我们究竟在什么场景下使用computed和watch呢?他们之间又有
- 如何计算方差简单展示一下pandas里怎么计算方差:官方文档:def def_std(df): for ix,row in df
- 第一种,使用reversed 函数,reversed返回的结果是一个反转的迭代器,我们需要对其进行 list 转换listNode = [1
- 1:为什么每个layout下都有个inlayout?我们将layout的宽/浮动等属性设置好之后,对于layout内的padding和mar
- 在Python探索之SocketServer详解中我们介绍了Python标准库中的SocketServer模块,了解了要实现网络通信服务,就
- 本文实例讲述了Python 类,property属性(简化属性的操作),@property,property()用法。分享给大家供大家参考,
- 本地一个长期更新的项目,git log突然报错:xxx@yyy:~/android/project/kernel/.git$ git log
- 我就废话不多说了,大家还是直接看代码吧~#!/usr/bin/env python# -*- coding: utf-8 -*-import
- boto操作import datetimeimport boto.s3.connectionfrom boto.s3.key import
- 什么是PromisePromise 是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve这几个方法,