decode encode区别_python encode函数

decode encode区别_python encode函数encode:编码decode:解码python内部编码方式为unicode,decode将其他编码方式转换成unicode编码方式,encode将unicode转换成其他编码方式。因此unicode相当于一个中转:(1)decode->unicode->encode(2)encode->unicode->decode字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符…

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

Jetbrains全系列IDE稳定放心使用

encode:编码
decode:解码
python内部编码方式为unicode,decode将其他编码方式转换成unicode编码方式,encode将unicode转换成其他编码方式。
因此unicode相当于一个中转:
(1)decode->unicode->encode 
(2)encode->unicode->decode 

 

字符串在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成其他编码
代码中字符串的默认编码与代码文件本身的编码一致。
如:s=’中文’
如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。这种情况下,要进行编码转换,都需要先用decode方法将其转换成unicode编码,再使用encode方法将其转换成其他编码。通常,在没有指定特定的编码方式时,都是使用的系统默认编码创建的代码文件。

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

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

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

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

出处:https://www.cnblogs.com/jack1989/p/10345627.html

 

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

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

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


相关推荐

  • 2020Java高级开发工程师面试题汇总

    2020Java高级开发工程师面试题汇总2020面试总结工作三年多,面试目标为高级开发工程师前言9.5–11.13,经过了长达70天的面试,终于有了结果。期间崩溃过无数次,很多次面试都被虐到怀疑人生,也有三面被刷掉无奈,一次次整装重新出发,一次次从头再来。今天有时间整理最近面试过程中涉及到的问题和经验,希望可以帮助到正在面试中或即将面试的同行们。一、面试过的公司阿里巴巴京东美团百度度小满金融爱奇艺当当网58同城贝壳找房快手小米滴滴微博陌陌中信银行尚德机构轻松筹货拉拉一起教育易车好未来二、面

    2022年5月29日
    53
  • 基于Docker运行弹性集群的五个关键点之:运行高可用模式

    基于Docker运行弹性集群的五个关键点之:运行高可用模式

    2022年2月22日
    43
  • 警告:为了安全请不要随意将ASP.Net的validateRequest=”false” .

    警告:为了安全请不要随意将ASP.Net的validateRequest=”false” .ASP.Net1.1后引入了对提交表单自动检查是否存在XSS(跨站脚本攻击)的能力。当用户试图用之类的输入影响页面返回结果的时候,ASP.Net的引擎会引发一个HttpRequestValidationExceptioin。默认情况下会返回如下文字的页面:ServerErrorin’/YourApplicationPath’ApplicationApot

    2022年6月5日
    29
  • 笔试面试算法经典–最长回文子串

    笔试面试算法经典–最长回文子串回文的定义正读和反读都相同的字符序列为“回文”,如“abba”、“abccba”是“回文”,“abcde”和“ababab”则不是“回文”。字符串的最长回文子串,是指一个字符串中包含的最长的回文子串。例如“1212134”的最长回文子串是“12121”。下面给出了三种求最长子串的方法。解法1(中心扩展法)时间复杂度O(n^2),空间复杂度为O(1)。中心扩展法的思路是,遍历到数组的某一个元素时,以这

    2022年6月9日
    78
  • Request对象接收Form表单提交[通俗易懂]

    Request对象接收Form表单提交[通俗易懂]转自:http://www.cnblogs.com/xdp-gacl/p/3798347.htmlForm表单:   HTML的form表单Html的Form表单元素编  号(文本框):size=”2″maxlength=”2″>用户名(文本框):密  码(密码框):性 

    2022年5月27日
    36
  • stm32l476芯片介绍(nvidia驱动无法找到兼容的图形硬件)

    前言最近购买了IoTBoard潘多拉开发板来研究,学习使用STM32CubeMX工具配置SPI,然后驱动了TFTLCD。潘多拉开发板的TFTLCD驱动IC是ST7789V2,结合原子哥的TFTLCD代码,分享自己的硬件SPI+软件SPI驱动ST7789V2+中文显示。关于STM32CubeMX的使用可以参考微雪课堂STM32CubeMX系列教程。STM32L475硬件SPI+软…

    2022年4月17日
    99

发表回复

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

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