python字符编码与转码

python 2.x 字符编码与转码


打印系统默认编码格式

import sys
print(sys.getdefaultencoding())

UTF-8 转 gbk

方式:utf-8--转成--unicode--转成--gbk

a = "你好"
print a
utf8_to_unicode = a.decode("utf-8")                 #utf-8转unicode
print utf8_to_unicode
unicode_to_gbk = utf8_to_unicode.encode("gbk")      #unicode转utf-8
print unicode_to_gbk

gbk 转UTF-8

方式:gbk--转成--unicode--转成--utf-8

gbk_to_unicode = unicode_to_gbk.decode("gbk")       #gbk转unicode
print gbk_to_unicode
unicode_to_utf8 = gbk_to_unicode.encode("utf-8")    #unicode转uft-8
print unicode_to_utf8

总结:

1.python2.X 默认编码是ascii ;支持中文需要加“ #-*- coding:utf-8 ”;

2.gbk、utf-8之间的转码必须先转码成unicode ;

python 3.x 字符编码与转码

字符编码与转码

UTF-8 可变长编码格式

python3.x 在转码的时候,同时把字符变成一个bytes类型;例如:b‘\xc4\xe3\xba\xc3‘ ;

python3.X 默认的编码是unicode 支持中文;

打印系统默认编码格式

import sys
print(sys.getdefaultencoding())

utf-8 转 gbk

由于python3.0 默认unicode 支持中文,所以输入中文,可以直接转gbk ;

a = "你好"
print(a)
unicode_to_gbk = a.encode("gbk")    #unicode 转 gbk
print(unicode_to_gbk)

utf-8 转 gbk

这里编码转化顺序:unicode--转成--utf-8--转成--unicode--转成--gbk;和上边一样的结果。

a = "你好"
print(a)
moren_to_utf8 = a.encode("utf-8")                   
#等于moren_to_utf8 = a.encode()   因为系统编码是utf-8
print(type(moren_to_utf8.decode("utf-8")))          
#utf-8 格式 decode成unicode 就成了一个字符串;
utf8_to_unicdoe = moren_to_utf8.decode("utf-8")
print(utf8_to_unicdoe)
unicode_to_gbk = utf8_to_unicdoe.encode("gbk")
print(unicode_to_gbk)

gbk 转 utf-8

gbk_to_unicode = unicode_to_gbk.decode("gbk")       #gbk 转 unicode
print(gbk_to_unicode)
unicode_to_utf8 = gbk_to_unicode.encode("utf-8")    #unicode 转 utf-8
print(unicode_to_utf8)

总结:

1.python3.x 默认编码是unicode,支持中文;

2.python3.x 在转码的时候,同时把字符变成一个bytes类型;例如:b‘\xc4\xe3\xba\xc3‘ ;

3.python3.x 转码成了bytes类型之后,想显示成中文decode成unicode 就成了一个字符串;

时间: 2024-11-11 00:56:04

python字符编码与转码的相关文章

python 字符编码与转码

一. 字符编码 ASCII: 一个字节,最多能表示255个字符 GB2312(1980年):一共收录了7445个字符,包括6763个汉字和682个其它符号. GBK1.0(1995年):收录了21886个符号,它分为汉字区和图形符号区.汉字区包括21003个字符. GB18030(2000年):取代GBK1.0的正式国家标准,该标准收录了27484个汉字. Unicode(统一码,万国码) 为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有

Python——day3_基础1_集合,文件操作,字符编码与转码

集合 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 常用操作 s = set([3,5,9,10]) #创建一个数值集合 t = set("Hello") #创建一个唯一字符的集合 a = t | s # t 和 s的并集 b = t & s # t 和 s的交集 c = t – s # 求差集(项在t中,但不在s中) d = t ^ s # 对称差集(项在t或s中,但不会同时

Python基础3 文件操作、字符编码与转码

文件操作 对文件操作过程 打开文件,得到文件句柄赋值给变量 操作 关闭文件 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:   不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+,可读写文件.[可读:可写:可追加] w+,写读 a+,同a "U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用) rU r+U "b

python学习笔记(集合的使用、文件操作、字符编码与转码、函数)

集合 集合(set):把不同的元素组成一起形成集合,是python基本的数据类型. 集合元素(set elements):组成集合的成员 为什么需要集合? 集合的作用 1 .列表去重复数据 按照现有知识的解决思路:先设置空列表,然后使用for寻获,把需要去重的列表的第一个数据放到新列表中,然后依次取出第二个数据,把第二个数据和第一个数据作比较,如果不一样,则存入新列表中:以此类推,每取一次都要和新列表中的数据作对比,不一样的则添加入新列表中. 2. 关系测试 比如有学员同时报了python班和l

Python 三级菜单-字符编码和转码-集合的操作-文件的操作

三级菜单: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, 'youku':{}, }, '上地':{ '百度':{}, }, }, '昌平':{ '沙河':{ '老男孩':{}, '北航':{}, }, '天通苑':{}, '回龙观':{}, }, '朝阳':{}, '东城':{}, }, '上海':{ '闵行':{ "人民广场":{ '炸鸡店

python 字符编码处理问题总结 彻底击碎乱码!

Python中经常遇到这样的字符编码问题,尤其在处理网页源码时(特别是爬虫中): UnicodeDecodeError: 'XXX' codec can't decode bytes in position 12-15: illegal multibyte... 下面以汉字'哈'来解释作示例解释所有的问题,汉字"哈"的各种编码如下: 1  UNICODE(UTF8-16): 0xC854 2  UTF-8: 0xE59388 3  GBK: 0xB9FE 除此之外还有如gb2312,

Python字符编码详解(转)

1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有英文,而单字节可以表示256个不同的字符,可以表示所有的英文字符和许多的控制符号.不过ASCII只用到了其中的一半(\x80以下),这也是MBCS得以实现的基础. 1.2. MBCS 然而计算机世界里很快就有了其他语言,单字节的ASCII已无法满足需求.后来每个语言就制定了一套自己的编码,由于单字节

python字符编码文件

字符编码发展 ASCII 255   只支持英文字母和数字,特殊字符   1bytes Unicode     中文和英文               统一2bytes utf-8      中文>3bytes  英文>1bytes bytes类型 文本数据总是unicode由str类型表示,二进制数据则由bytes类型表示 二进制数据用在视频,音频文件以及发送socket网络传输数据等 字符串转成二进制  str.encode("encoding=utf-8") 二进制转

第七章、Python字符编码

第七章.Python字符编码 一.定义 计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的英文.汉字等字符是二进制数转换之后的结果.通俗的说,按照何种规则将字符存储在计算机中,如'a'用什么表示,称为"编码":反之,将存储在计算机中的二进制数解析显示出来,称为"解码",如同密码学中的加密和解密.在解码过程中,如果使用了错误的解码规则,则导致'a'解析成'b'或者乱码. 字符(Character):是一个信息单位,在计算机里面,一个中文汉字是一个字符,一个英