Python 字符集
什么是字符?
1.在Python中,字符串中的内容都是字符.
2.什么是字符编码(encode)和字符集(charset)?
- 计算机只能识别数值,而字符不能识别,为了让计算机能处理字符,必须将字符和数值产生一个映射关系.(即:给某个字符指定一个数值,计算机就用这个数值表示这个字符了.)这个映射关系,称为字符集. 例如: ASCII字符集,gbk字符集,Shift_JIS字符集.
- 这些字符集通常不互相通用,比如:3000这个数值在gbk中表示一个符号,在其他的字符集中有可能表示的就是完全不同的字符.
- 为了终止这种混乱的场面,出现了Unicode字符集.
- Unicode字符集也是一种字符和数值对应的关系表.只不过它里面保存的数值比较多,目前已经达到了一百多万个.已经能表示世界上所有能见到的语言和符号了.
3.字符编码:将字符集中的数值转换成字节的过程.
- 但是和ASCII字符集,gbk字符集,Shift_JIS字符集不同的是:
- Unicode字符集提供了多种实现方案:
- UTF8,UTF16,UTF32等等.
- UTF:Unicode Translate
- Format,Unicode转换格式
- 其中,UTF16用固定的2个字节表示Unicode字符.
- UTF32用固定的4个字节表示Unicode字符. 二者都不太常用.
4.而UTF8是一种变长的编码方案(在互联网领域最常用):
- 能用一个字节表示的,就用一个字节表示.
- 表达不了的,用两个字节表示.
- 实在不行的,用三个字节表示.
- 还有一些比较少用的,用四个字节表示.
- 中文一般用三个字节表示.
- Unicode字符集和UTF8编码对应的关系:
Python 字符集的更多相关文章
- python字符集的转换(mysql数据乱码的处理)
本文参考:http://blog.csdn.net/crazyhacking/article/details/39375535 chardet模块:http://blog.csdn.net/tianz ...
- python字符集选择
# coding=utf8 或者 # -*- coding:utf-8 -*- 在python2 中默认是ASCII码的字符集,但可以引入其他的字符集 这个需要在头信息中引入: 而在python3中 ...
- Python字符集
字符集: 美国:ASCII 需要8bit表示 英文字母一个字节,不支持中文中国:GBK 英文字母一个字节,汉字占两个字节万国:un ...
- python 字符集转换-灰常慢
代码 def toUni (text): str = text try: charstyle = chardet.detect(text) # print 'confidence: ', charst ...
- python print 中文重定向失败
一直以来认为解决python字符集编码,不一定需要通过sys.setdefaultencoding.因为既然python实现过程中,默认禁用了该操作,说明是不推荐的. 通过不断的字符转换,也cover ...
- 附录:python and numpy
http://cs231n.github.io/python-numpy-tutorial/ Python is a great general-purpose programming languag ...
- [py]文件 字符串 列表特例
文件 readlines 列表 readline 字符串 read 字符串 列表---拆分---小列表 f=file('test.log','r') for line in f.readlin ...
- 爬虫新手学习2-爬虫进阶(urllib和urllib2 的区别、url转码、爬虫GET提交实例、批量爬取贴吧数据、fidder软件安装、有道翻译POST实例、豆瓣ajax数据获取)
1.urllib和urllib2区别实例 urllib和urllib2都是接受URL请求相关模块,但是提供了不同的功能,两个最显著的不同如下: urllib可以接受URL,不能创建设置headers的 ...
- 字符集编码与Python(二)Unicode与utf-8
Python中的Unicode和utf-8 上一篇提过了字符集的历史其中简单的讲解了Unicode与utf-8的关系,简单的总结一下: utf-8和utf-16 .utf-32是一类,实现的功能是 ...
随机推荐
- Java 读取和写入文本文件
package test_java; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStre ...
- 使用 udev 进行动态内核设备管理(转自suse文档)
第 12 章使用 udev 进行动态内核设备管理¶ 目录 12.1. /dev 目录 12.2. 内核 uevents 和 udev 12.3. 驱动程序.内核模块和设备 12.4. 引导和启动设备设 ...
- 重置mysql root密码
首先结束mysql进程,利用ps aux | grep mysql命令得到进程ID号,kill ID号,结束进程其次,运行mysqld --skip-grant-tables 或者mysqld_saf ...
- 新添加的用户无法sudo解决方案
问题:xxx(用户名) is not in the sudoers file. This incident will be reported. 用户管理: 1.创建用户 (1)方法1 $ sudo a ...
- Java中的数据类型与运算符
一.变量的命名 (1)什么是变量:变量是java中存储数据的空间. (2)变量命名的规则:由:数(数字),字(字母),下(下划线),美(美元符号),人(人名币符号)组成的标识符.注:数字不能作为首字母 ...
- 转载:Linux命令行快捷键
常用 Ctrl + 左右键:在单词之间跳转 Ctrl + A:跳到本行的行首 Ctrl + E:跳到页尾 Ctrl + U:删除当前光标前面的所有文字(还有剪切功能) Ctrl + K:删除当前光标后 ...
- 解决:Java source1.6不支持diamond运算符,请使用source 7或更高版本以启用diamond运算符
diamond运算符,指的是JDK1.7的一个新特性.Maven默认用的是JDK1.6去编译.所以需要配置成更高的版本,有以下几种解决办法: 1.在项目pom.xml中加入下面的配置即可 <pr ...
- SpringBoot 基础(二)
目录 SpringBoot基础(二) 一.操作数据库 1. SpringBootJdbc 2. SpringBoot 整合 Mybatis 3. SpringBott 使用JPA 二.使用 Thyme ...
- EF Core 批处理语句
在Entity Framework Core (EF Core)有许多新的功能,最令人期待的功能之一就是批处理语句.那么批处理语句是什么呢?批处理语句意味着它不会为每个插入/更新/删除语句发送单独的请 ...
- AGC039
Contest Page A 对于一个长度为\(L\)的相同字符段,显然要花费\(\frac{L}{2}\)次操作才能使得相邻不相同.于是只需要分类讨论一下首尾字符是否相同,算出每种字符.每种长度的连 ...