美文网首页
python 字符 编码 简述

python 字符 编码 简述

作者: Diaoaha | 来源:发表于2018-10-31 19:21 被阅读0次

字符编码问题很简单,当你可以区分以下几种概念之后:

  1. 字节编码与字符编码
  2. 字节串与字符串
  3. 文件编码、IDE编码、其他I/O编码
  4. str()与repr()

字节编码与字符编码

ascii unicode是字符编码,编码后的字符编成一个段落是字节编码,utf-8 gbk是字节编码。

字节串与字符串

  • str是字节串,由unicode经过编码(encode)后的字节组成的。使用len来求长度获取的是字节长度。
  • unicode才是严格意义上的字符串,如u'中文'。使用len来求长度时是字符个数。
>>> len("中文")
6
>>> len(u"中文")
2

在程序中处理字符串之前,最好先确定是哪种类型。

>>> isinstance(u'中文', unicode)
True
>>> isinstance(u'中文', str)
False
>>> isinstance('中文', str)
True

通常的处理过程是识别输入编码,然后解码成unicode,在最后输出之前在进行编码,分别使用python内建函数encode和decode,如果确定一个字符串不是unicode类型,这时候需要进行解码,可以使用chardet识别str的编码。

>>> from chardet import detect
>>> a = "中文"
>>> detect(a)
{'confidence': 0.682639754276994, 'encoding': 'KOI8-R'}

文件编码、IDE编码、其他I/O编码

  • Python程序文件的编码 (默认编码ascii 只在文件中有编码时有影响)
  • Python程序运行时环境(IDE)的编码(影响输入和输出)
  • Python程序读取外部文件、网页的编码 (影响输入与输出)

当我们发现乱码时,就要区分是第二还是第三种情形,终端打印是IDE相关,数据库属于其他I/O相关,之所以出现乱码就是编码不匹配,我们需要确定的是不匹配的双方和双方所对应的编码。

对于系统的编码可以使用sys来获取,这影响终端显示。

>>> import sys
>>> sys.getdefaultencoding()
'ascii'

str()与repr()

reprstr这两个方法都是用于显示的,str是面向用户的,而repr面向程序员。print首先尝试的是str函数,这就是我们unicode字符串打印出来和字节串一样的原因。

相关文章

  • python 字符 编码 简述

    字符编码问题很简单,当你可以区分以下几种概念之后: 字节编码与字符编码 字节串与字符串 文件编码、IDE编码、其他...

  • python 高级方法

    Python的字符串类型 字符编码方法 查看Python中的字符串编码名称,查看系统的编码 源文件字符集编码声明:...

  • 字符编码简述

    计算机里只有高低电频。 一:知识介绍字符 A 是如何显示在屏幕上的?1.在键盘按下 A按键,键盘将A转化为电量的变...

  • 字符编码简述

    众所周知,java中如果要计算一个字符串的长度,可以直接利用String的length方法。如下: 显然,这里的l...

  • python编码

    python编码 python编码简介 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,...

  • json与python

    Python 对象编码成 JSON 字符串 json.dumps 用于将 Python 对象编码成 JSON 字符...

  • Python中的字符串编码

    Python中的字符串编码 定义字符串 Python 中存在两种编码方式的字符串:ASCII 和 Unicode。...

  • python学习随便

    Python学习__字符串编码 对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()...

  • python 介绍 基本语法和流程控制

    python2 采用ascii字符集编码,python3 采用utf-8字符集编码 python 变量名:name

  • 学习任务

    1.python有关字符编码

网友评论

      本文标题:python 字符 编码 简述

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