python中decode和encode的区别_python中decode和encode区别

python中decode和encode的区别_python中decode和encode区别#-*-coding:utf-8importsys”’*首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb231…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

#-*-coding:utf-8

import sys

”’

*首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,

即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312’),表示将gb2312编码的字符串str1转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode(‘gb2312’),表示将unicode编码的字符串str2转换成gb2312编码。

总得意思:想要将其他的编码转换成utf-8必须先将其解码成unicode然后重新编码成utf-8,它是以unicode为转换媒介的

如:s=’中文’

如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。这种情况下,要进行编码转换,都需要先用

decode方法将其转换成unicode编码,再使用encode方法将其转换成其他编码。通常,在没有指定特定的编码方式时,都是使用的系统默认编码创建的代码文件。

如下:

s.decode(‘utf-8’).encode(‘utf-8’)

decode():是解码

encode()是编码

isinstance(s,unicode):判断s是否是unicode编码,如果是就返回true,否则返回false*

”’

”’

s=’中文’

s=s.decode(‘utf-8’) #将utf-8编码的解码成unicode

print isinstance(s,unicode) #此时输出的就是True

s=s.encode(‘utf-8’) #又将unicode码编码成utf-8

print isinstance(s,unicode) #此时输出的就是False

”’

print sys.getdefaultencoding()

s=’中文’

if isinstance(s,unicode): #如果是unicode就直接编码不需要解码

print s.encode(‘utf-8’)

else:

print s.decode(‘utf-8’).encode(‘gb2312’)

print sys.getdefaultencoding() #获取系统默认的编码

reload(sys)

sys.setdefaultencoding(‘utf8’) #修改系统的默认编码

print sys.getdefaultencoding()

原文链接:https://blog.csdn.net/qq_34162294/article/details/53727357

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184910.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月7日 下午4:00
下一篇 2022年10月7日 下午4:00


相关推荐

  • 有关移位操作

    有关移位操作我们常用的移位操作是 分别为左移和右移 当我们在 C 语言中有算数移位和逻辑移位两种 JS 中有和的区别

    2026年3月18日
    1
  • BIOS和EC

    BIOS和EC08年做MID时候的一个PPT.Agenda硬件平台BIOS介绍功能类型,种类内部模块(AWARD为例)EC介绍功能(IT8511ELPCEC为例)EC与BIOS关系硬件平台BIOS介绍BIOS(BasicInputOutputSystem)即基本输入/输出系统。存放在一个不需要电源的记忆体(芯片)中,这就

    2022年7月20日
    44
  • Pycharm如何创建项目

    Pycharm如何创建项目在本教程中 将创建一个简单的 Python 脚本 因此将选择 PurePython 此模板将创建一个空项目 第一步 如果您在欢迎屏幕上 请单击 CreateNewPro 如果您已打开项目 请选择 File NewProject 第二步 PyCharm 建议了几个用于创建各种类型应用程序的项目模板 Django GoogleAppEng 等 当 PyCharm 从项目模板创建一个新项目时 它会生成相应的目录结构和特定文件 以及任何所需的运行配置或设置 第三步 Python 的最

    2026年3月27日
    2
  • 14道基础Python练习题(附答案)

    14道基础Python练习题(附答案)目录 1 输入一个百分制成绩 2 篮球比赛案例 3 根据 y 1 3 1 3 1 2n 1 1 求 4 购物卡案例 5 设计一个猜数游戏 6 建立 1 个包含 10 个字符的字符串 7 编写函数 8 赶鸭子 9 将复数 2 3103 1 3410 3j 赋值给变量 A 并分别提取 A 的实部和虚部 10 计算下列表达式的值 11 建立一个包含 10 个字符的字符串 A 然后对该字符串进行如下操作 12 分别格式化输出 0 002178 对应的科学表示法形式

    2026年3月17日
    2
  • 大疆无人机基于自搭建RTMP服务端推流直播

    大疆无人机基于自搭建RTMP服务端推流直播思路大疆在手机端提供了软件 DJIGO4 控制飞行参数等 其中包含自定义 RTMP 接口来向第三方推流进行直播业务 而我们可以利用这种直播的思路来完成画面传输 环境精灵 Phantom4ProV 0DJIGO4 手机端 win10 PC 端 步骤一 搭建 启动 RTMP 服务端 Notice 搭建 RTMP 服务端主要参考 1 2 链接中的步骤 因为我们是通过 DJIGO4 来推流 所以其中的 ffmpeg 步骤可以跳过 只需考虑 Nginx 的搭建 在 http nginx win

    2026年3月26日
    2
  • docker离线安装部署 linux_docker官方中文文档

    docker离线安装部署 linux_docker官方中文文档linux下离线安装docker一、基础环境1、操作系统:centos7.32、docker版本:18.06.1官方下载地址(打不开可能很慢)4、官方参考文档:二、docker安装1、解压tar-xvfdocker-18.06.1-ce.tgz2、将解压出来的docker文件内容移动到/usr/bin/目录下mvdocker/*/usr/bin/3、将docker注册为servic…

    2026年4月14日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号