• python3字符串编码和解码 2019-03-27 01:03:33
    一般来说由一种字符串变成二进制串的过程叫encode;反之称为decode 从保存文档开始讲起 通常我们写一个文档时,无论是通过word / pycharm / notepad++这些,都会有一个东西叫解码方式,出现在右下角,并且...
    虽然这是一个很基础的问题,但是博主一直都是瞎猫碰死耗子的心态去试,因为对于中文就那么几种encode方式 - -!
    
    ---
    ##### 编码解码
    * 什么是`encode`和`decode`
    
    一般来说由一种字符串变成二进制串的过程叫encode;反之称为decode
    
    * 从保存文档开始讲起
    
    通常我们写一个文档时,无论是通过word / pycharm / notepad++这些,都会有一个东西叫解码方式,出现在右下角,并且选不好就出现乱码。
    
       *why?*
       首先,我们知道字符串存在硬盘中,实际上存放的是二进制数,那怎么存放二进制数,二进制怎么对应起我们想要的字符,这就通过了我们规定的编码规则了。
       > 我们通过输入法,输入的字符串到硬盘二进制的过程叫**encode**;打开二进制文件在编辑器中显示字符的过程叫**decode**。
       
       这是对于文件编辑器来说。
    ##### python3字符
    python3文件中只有两种字符`str`型和`bytes`型
    其中`bytes`就是二进制串的十六进制表示,`str`在python3是`Unicode`标准并且可以选择不同编码表示,如`utf-` `GBK` `ISO-`等。
    *可以在python代码的首行指定`# -*- coding:gbk -*-`,或者在pycharm的右下角选择*
    关于`Unicode`这些,可以看:https://blog.csdn.net/qq_24326765/article/details/82183167
    > 其实你把python文件当成一个普通的字符文件就很容易理解上面的东西了。
    > 只不过python因为可以调用函数实现encode和decode的操作。
    
    看看python3如何指定解码方式读取文档
    特地用`GBK`写了一个test文件,只有一行:
    > i love 中国!
    
    代码:
    ```python
    # -*- coding:gbk -*-
    
    a = 'i love 中国!'
    print(a.encode('gbk'))
    print(a.encode('utf-8'))
    with open('test_en_decode','rb') as f:
        a = f.readlines()
        print(a)
        print(a[0].decode('gbk'))
    ```
    结果:
    ```
    b'i love \xd6\xd0\xb9\xfa!'
    b'i love \xe4\xb8\xad\xe5\x9b\xbd!'
    [b'i love \xd6\xd0\xb9\xfa!']
    i love 中国!
    ```
    发现`GBK` `utf-`两者编码方式不一样,得到的二进制串结果也不一样。
    并且`'rb'`方式open最后得到得结果也可以进行对应编码方式得decode,而不出现乱码。
    
    *至于为什么python在encode后,英文字符不是二进制串,应该是编译器打印时,ASCII能对应得就转换了*
    .#
    
    展开全文
  • Python2字符编解码问题 2019-06-13 15:39:08
    Python2字符编解码问题 在python2中有两种类型的字符串:str和unicode。二者的转换如下: ​ unicode字符串通过encode函数转换为str字符串,称为编码; ​ str字符串通过decode函数转化为unicode字符串,称为解码....
  • python中的编解码攻略 2016-07-12 11:15:06
    正如其他语言一样,在Python的世界里也有有字符编解码问题;有的在命令行回显时出现,有的在读取文件时出现,有的在执行命令时出现,有的在读取数据库时出现,不尽相同。 注:如未特别申明下文中的编解码均特指...
  • Python字符串的编码与解码(encode与decode)字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码...
  • Python2在编译安装时可以通过参数 --enable-unicode=ucs2 或 --enable-unicode=ucs4分别指定使用2个字节或者4个字节表示一个unicode字符python3默认使用4个字节表示一个unicode字符,无法改变 python2默认ucs2...
  • python中,编码解码其实是不同编码系统间的转换,默认情况下,转换目标是Unicode,即编码unicode→str,解码str→unicode,其中str指的是字节流,而str.decode是将字节流str按给定的解码方式解码,并转换成utf-8...
  • 字符编解码 Python3相对于Python2的一大改变就是,对默认字符类型进行了修改。Python2中定义字符串默认为二进制字符串,强制加前缀u的才是unicode字符串;而Python3中字符串默认为unicode,强制加前缀b的才是二进制...
  • python编码与解码 2019-05-01 11:24:04
    之前看过编解码,但是还是理解不深,现在重新梳理一遍。 本文总体如下: 1 通俗理解什么是编解码。 或者也可以说为啥一定要编解码编解码是不是多余的操作? 2 明白编解码的原因,那到底有哪些编解码的方式? ...
  • Python 2.x中的字符编码,设计的的确不好,导致初学者,甚至是即使用Python很长时间的人,都会经常遇到字符编解码方面的错误。 下面就把一些常见情,尽量的都整理出来,并给出相应的解决办法。 看此文之前 ...
  • PYTHON编码和解码 2018-10-21 14:04:40
    从第一天接触Python就对...Python字符串的编码与解码(encode与decode) 编码和解码的内涵 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即现将其他编码的字符串解...
  • Python JSON编解码 2019-06-25 11:40:15
    1.JSON 函数 JSON(JavaScript Object Notation)是一种轻量级的数据格式。 使用JSON函数需要导入json库:...json.loads 将已编码的JSON字符解码Python对象 实例1 import json a = [1,"a","b"] print("a:",a)...
  • 字符/解码问题总是与宽字符集的表达相关,如果只限定于ASCII字符集当然是不存在此问题的。中文编码问题只是其中的一个子集而已。对于Python字符编解码在2.X和3.X中又稍有不同,但整体逻辑如下图所示。Python...
  • python3字符串base64编解码 2019-05-15 21:05:51
    其次,python3中字符都为unicode编码,而b64encode函数的参数为byte类型,所以必须先转码。 s = "你好" bs = base64.b64encode(s.encode("utf-8")) # 将字符为unicode编码转换为utf-8编码 print(bs) # 得到的编码...
  • Python 2.x中的字符编码,设计的的确不好,导致初学者,甚至是即使用Python很长时间的人,都会经常遇到字符编解码方面的错误。下面就把一些常见情,尽量的都整理出来,并给出相应的解决办法。看此文之前Python字符...
  • 字符编解码 Python3相对于Python2的一大改变就是,对默认字符类型进行了修改。Python2中定义字符串默认为二进制字符串,强制加前缀u的才是unicode字符串;而Python3中字符串默认为unicode,强制加前缀b的才是二进制...
  • python中文字符解码问题 2013-03-20 00:43:11
    python解码中文的时候,可能报以下错误: data.decode('gbk'); 'gbk' codec can't decode bytes in position xxx illegal multibyte ... 可以尝试把gbk换成'GB18030' 因为gbk相对于gb2312包含的字符更多...
  • 根本原因: 字符串在Python内部的...作为中间编码,即先将其他编码的字符解码(decode)成unicode,再从unicode(encode) 成另一种编码。但是,Python 2.x的默认编码格式是ASCII,就是说,在没有指定Python...
  • 今天在做简单的Python爬虫时遇到了编码错误的问题,查找资料得到如下结论:(转载记录,便于今后查找) 报错的异常是  UnicodeDecodeError: ‘gbk’ codec can’t decode bytes in position 2-3: ...
  • python 字符串编码与解码 2014-07-11 13:19:16
    1. 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符解码(decode)成unicode,再从unicode编码(encode)成另一种编码。  decode的作用是...
1 2 3 4 5 ... 20
收藏数 42,363
精华内容 16,945