zoukankan      html  css  js  c++  java
  • 零基础学python之文本和编码问题

    字符串是个相当简单的概念:一个字符串是一个字符序列。问题出在"字符"的定义上。

    在2015 年,"字符"的最佳定义是Unicode字符。因此,从Python 3 的str对象中获取 的元素是Unicode字符

    Unicode 标准把字符的标识和具体的字节表述进行了如下的明确区分。

    字符的标识,即码位,是0~1 114 111的数字(十进制),在Unicode标准中以4~6个十六进制数字表示,而且加前缀U+。例如,字母A的码位是U+0041,欧元符号的码位是U+20AC,高音谱号的码位是U+1D11E. 在Unicode 6.3标准中,约10% 的有效码位有对应的字符。

    字符的具体表述取决于所用的编码。编码是在码位和字节序列之间转换时使用的算法。在UTF-8编码中,A(U+0041)的码位编码成单个字节x41,而在UTF-16LE编码中编码成两个字节x41x00。再举个例子,欧元符号(U+20AC)在UTF-8编码中是三个字节——xe2x82xac,而在UTF-16LE中编码成两个字节:xacx20.

    把码位转换成字节序列的过程是编码,使用encode;把字节序列转换成码位的过程是解码,使用decode.

    非英语用户常常会搞反所谓的编码解码,可以这样理解: 把Unicode字符串想成“人类可读”的文本.那么,

    把字节序列变成人类可读的文本字符串就是解码

    而把字符串变成用于存储或传输的字节序列就是编码

     
    所以,我们在做爬虫的时候,遇到乱码的情况,可以先去看看编码格式是否正确!
  • 相关阅读:
    工作的价值
    面对伤害该不该回击
    建议
    利用私有的API获得手机上所安装的所有应用信息(包括版本,名称,bundleID,类型)
    你必须知道的HTTP错误
    静态库制作
    MDM证书申请的流程
    IOS客户端实现RSA加密
    获得appstore里面app的最新的版本信息,进行版本更新
    C语言实现简单php自定义扩展
  • 原文地址:https://www.cnblogs.com/qun542110741/p/9159627.html
Copyright © 2011-2022 走看看