decode encode区别_python decode和encode

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()

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/184982.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Response.Flush()的用处

    Response.Flush()的用处Response.Flush()的作用是将缓冲信息输出到页面。比如我们在点击一个按钮后,执行多个任务,每个任务执行成功后都有一个Response.Write(‘成功信息’)。如果我们在Respons

  • 通过java生成精确到秒的时间戳

    通过java生成精确到秒的时间戳3、Java中的两种获取精确到秒的时间戳的方法:Java中的时间戳的毫秒主要通过最后的三位来进行计量的,我们通过两种不同的方式将最后三位去掉。

  • linux服务器,卸载tensorflow CPU 安装PGU版

    linux服务器,卸载tensorflow CPU 安装PGU版linux服务器,卸载tensorflowCPU安装PGU版写在前面之前用的和学习的都是pytorch框架,现在要运行一个keras的代码,得安装tensorflow和keras,按一个教程,直接在pycharm里setting,点那个+很快就装好了tensorflow和keras,运行了几次发现运行特别慢,用nvidia-smi查看,发现根本没有用pgu跑,一番查找,最后发现安装的tensorflow本身是按CPU跑的,要用GPU跑,得安装tensorflow-gpu。以下主要参考了https

  • linux zip 删除源文件,linux zip命令参数及用法详解–linux压缩zip文件命令[通俗易懂]

    linux zip 删除源文件,linux zip命令参数及用法详解–linux压缩zip文件命令[通俗易懂]linux命令的基本用法是:zip[参数][打包后的文件名][打包的目录路径]linuxzip命令参数列表:-a将文件转成ASCII模式-F尝试修复损坏的压缩文件-h显示帮助界面-m将文件压缩之后,删除源文件-n特定字符串不压缩具有特定字尾字符串的文件-o将压缩文件内的所有文件的最新变动时间设为压缩时候的时间-q安静模…

    2022年10月20日
  • 电容触摸屏GT911、GT928、GT9147的使用

    电容触摸屏GT911、GT928、GT9147的使用一、介绍与硬件连接GT911、GT928、GT9147都属于GT9系列非单层多点触控芯片,他们支持的触控点数不同(GT928支持10个点、GT911支持5个点)、驱动和感应通道也可能不同。可是他们的寄存器和IIC通讯时序是相同的,也就是说驱动程序是兼容的。与主机的接口共有6PIN,分别为:VDD、GND、SCL、SDA、INT、RESET。INT、RESET…

  • idea2019激活码(已测有效)

    idea2019激活码(已测有效),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

发表回复

您的电子邮箱地址不会被公开。

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