美文网首页
2020-05-22

2020-05-22

作者: sunshine35 | 来源:发表于2020-05-22 15:20 被阅读0次

转自:http://blog.csdn.net/a921800467b/article/details/8579510

编码问题:

  • 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
  • 字符串在python内部的表示是unicode编码,也可以说现在的内存是unicode编码格式,硬盘是utf-8。平常的数据操作都是先把数据读取到内存中,所以内存中都是unicode编码格式。所以我们平常在做编码转换时候,通常用unicode作为中间编码。先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码格式。
  • decode的作用是将二进制数据解码成unicode编码,如str1.decode('utf-8'),表示将utf-8的编码字符串解码成unicode编码。

  • 简单的来说:decode就是把二进制数据(bytes)转化成人看的懂得英文或者汉字(decode用的比较多),encode的作用是将unicode编码的字符串编码成二进制数据,如str2.encode('utf-8'),表示将unicode编码的字符串编码成utf-8。

python中的encode,decode方法=

首先,要知道encode是 unicode转换成str。decode是str转换成unicode。

  • python是个容易出现编码问题的语言。所以,我按照我的理解写下下面这些文字。
    =首先,要了解几个概念。=
    *字节:计算机数据的表示。8位二进制。可以表示无符号整数:0-255。下文,用“字节流”表示“字节”组成的串。
    *字符:英文字符“abc”,或者中文字符“你我他”。字符本身不知道如何在计算机中保存。下文中,会避免使用“字符串”这个词,而用“文本”来表
    示“字符”组成的串。
    *编码(动词):按照某种规则(这个规则称为:编码(名词))将“文本”转换为“字节流”。(在python中:unicode变成str)
    *解码(动词):将“字节流”按照某种规则转换成“文本”。(在python中:str变成unicode)
    **实际上,任何东西在计算机中表示,都需要编码。例如,视频要编码然后保存在文件中,播放的时候需要解码才能观看。
    unicode:unicode定义了,一个“字符”和一个“数字”的对应,但是并没有规定这个“数字”在计算机中怎么保存。(就像在C中,一个整数既
    可以是int,也可以是short。unicode没有规定用int还是用short来表示一个“字符”)
    utf8:unicode实现。它使用unicode定义的“字符”“数字”映射,进而规定了,如何在计算机中保存这个数字。其它的utf16等都是
    unicode实现。
    gbk:类似utf8这样的“编码”。但是它没有使用unicode定义的“字符”“数字”映射,而是使用了另一套的映射方法。而且,它还定义了如何在
    计算机中保存。

前端base64加解密

转自:https://www.jianshu.com/p/4c5911455875

  • 加密 btoa:

btoa("Condor Hero");
  • 解密 atob:

atob("Q29uZG9yIEhlcm8=");
  • aob这个方法名称乍一看,很奇怪,不知道这个单词什么意思。我们可以理解为 A to B,也就是从A到B。这里的B指的就是Base64吗?哈哈哈,恭喜你!猜错了!A指的才是Base64,反的,B才是普通字符,普通意思就是low,俗称low B。所以我们这么记忆,Low B,Low B,B表示很Low的普通字符,A才是Base64,和首字母对应关系是反的。

  • 其中使用中文报错:
    解决办法:就是中文先转码

btoa(encodeURIComponent("中文"));
btoa(decodeURIComponent("base编码"));

相关文章

网友评论

      本文标题:2020-05-22

      本文链接:https://www.haomeiwen.com/subject/zemqahtx.html