python encode和decode的区别_encode和decode的区别

python encode和decode的区别_encode和decode的区别字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312’),表示将gb2312编码的字符串str1转换成unicode编码。e…

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

Jetbrains全系列IDE稳定放心使用

字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

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

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

因此,转码的时候一定要先搞明白,字符串str是什么编码,然后decode成unicode,然后再encode成其他编码

代码中字符串的默认编码与代码文件本身的编码一致。

python encode和decode的区别_encode和decode的区别

如:s=’中文’

如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。这种情况下,要进行编码转换,都需要先用decode方法将其转换成unicode编码,再使用encode方法将其转换成其他编码。通常,在没有指定特定的编码方式时,都是使用的系统默认编码创建的代码文件。

如果字符串是这样定义:s=u’中文’

则该字符串的编码就被指定为unicode了,即python的内部编码,而与代码文件本身的编码无关。因此,对于这种情况做编码转换,只需要直接使用encode方法将其转换成指定编码即可。

如果一个字符串已经是unicode了,再进行解码则将出错,因此通常要对其编码方式是否为unicode进行判断:

isinstance(s,unicode)#用来判断是否为unicode

用非unicode编码形式的str来encode会报错

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Hbase面试题(持续更新)「建议收藏」

    Hbase面试题(持续更新)「建议收藏」1、每天百亿数据存入HBase,如何保证数据的存储正确和在规定的时间里全部录入完毕,不残留数据1)百亿数据:证明数据量非常大2)存入HBase:证明是跟HBase的写入数据有关3)保证数据的正确:要设计正确的数据结构保证正确性4)在规定时间内完成:对存入速度是有要求的那么针对以上的四个问题我们来一一分析1)数据量百亿条,什么概念呢?假设一整天60x60x24=86400秒都在写入数据,那么每秒的写入条数高达100万条,HBase当然是支持不了每秒百万条数据的,所以这百亿条数据可能不是通过实时

    2022年5月31日
    38
  • CSS 改变鼠标样式(大全)[通俗易懂]

    CSS 改变鼠标样式(大全)[通俗易懂]前端经常会用到改变鼠标的样式来达到更好的页面效果,比如经常会使用到改变成小手,拖拽时改变成移动拖拽的鼠标样式,可每次都需要查阅资料来完成代码,在此做下详细总结:使用方法:<spanstyle=”cursor:auto”>Auto</span><spanstyle=”cursor:crosshair”>Crosshair</span><spanstyle=”cursor:default”>Default&..

    2022年5月31日
    155
  • do you know what i mean_do you know what

    do you know what i mean_do you know whatOriginalLinkQ: “HowdoyouknowGodisreal?” -GregoryM.A: Thisisthequestionthateverysinglepersonatonepoint(hopefully)intheirlifetimewillask.Mostpeoplewillprobablyaskitmanyt

    2022年10月8日
    2
  • GoLand2021.5.1激活码【注册码】

    GoLand2021.5.1激活码【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    37
  • VS2013密钥

    VisualStudioUltimate2013KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9VisualStudioPremium2013KEY(密钥):FBJVC-3CMTX-D8DVP-RTQCT-92494VisualStudioProfessional2013KEY(密钥):XDM3T-W3T3V-MGJWK-8BFVD-G…

    2022年4月4日
    52
  • cultureinfo 类 java_System.Globalization.CultureInfo.cs(示例代码)

    cultureinfo 类 java_System.Globalization.CultureInfo.cs(示例代码)#region程序集mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089//C:ProgramFiles(x86)ReferenceAssembliesMicrosoftFramework.NETFrameworkv4.6.1mscorlib.dll#endregionusingSystem…

    2022年6月19日
    34

发表回复

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

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