day03-字符编码与转换

1、编码常识

  • 在python 2中默认编码是 ASCII,而在python 3中默认编码是 unicode
  • unicode 分为utf-32 (占4个字节),utf-16(占两个字节),utf-8(占1-4个字节),所以utf-16 是最常用的unicode版本,但是在文件里存的还是utf-8,因为utf8省空间
  • 在python 3,encode编码的同时会把stringl变成bytes类型,decode解码的同时会把bytes类型变成string类型
  • 在unicode编码中 1个中文字符=2个字节,1个英文字符 = 1个字节,切记:ASCII是不能存中文字符的
  • utf-8是可变长字符编码,它是unicode的优化,所有的英文字符依然按ASCII形式存储,所有的中文字符统一是3个字节
  • unicode包含了所有国家的字符编码,不同字符编码之间的转换都需要经过unicode的过程
  • python本身的默认编码是utf-8

在Python2.X中,默认编码是ASCII

#-*- encoding:utf-8 -*-

import sys

print(sys.getdefaultencoding())  #打印当前默认编码

s = ‘你好!!!‘

s_to_unicode = s.decode(‘utf-8‘) #需要指定编码方式为utf-8(否则会使用默认编码)

print(s_to_unicode)     #此时可以打印中文

2、Python2.x  utf-8转换成gbk格式

1 #-*- encoding:utf-8 -*-
2 s = ‘你好!!!‘
3 s_to_unicode = s.decode(‘utf-8‘) #需要指定编码方式为utf-8(否则会使用默认编码)
4 s_to_gbk = s_to_unicode.encode(‘gbk‘)
5 合成一句
6 #s_to_gbk = s.decode(‘utf-8‘).encode(‘gbk‘)
7 print(s_to_gbk)  

3、Python2.x  gbk转换成utf-8格式

1 #-*- encoding:utf-8 -*-  #属于文件编码
2 s = ‘你好!!!‘          #默认编码也是utf-8
3 s_to_gbk = s.decode(‘utf-8‘).encode(‘gbk‘)
4 gbk_to_utf-8 = s_to_gbk.decode(‘gbk’).encode(‘utf-8’)
5 print(gbk_to_utf-8)

4、Python3.x  unicode转换成gbk,gbk再转换成utf-8,utf-8转换成unicode

 1 s = ‘你好‘     #python3 默认是unicode
 2
 3 s_gbk = s.encode("gbk") #将unicode转换成gbk
 4
 5 print(s_gbk)
 6 print(s.encode())#默认解码成utf-8
 7
 8 gbk_to_utf8 = s_gbk.decode(‘gbk‘).encode(‘utf-8‘)
 9 print(gbk_to_utf8)
10
11 utf8_to_unicode=gbk_to_utf8.decode(‘utf-8‘)
12 print(utf8_to_unicode)
13
14 输出结果:
15 utf-8
16 b‘\xc4\xe3\xba\xc3‘            #encode会将结果变成二进制编码
17 b‘\xe4\xbd\xa0\xe5\xa5\xbd‘18 b‘\xe4\xbd\xa0\xe5\xa5\xbd‘
你好                          #decode会将结果变成字符
				
时间: 2024-10-22 04:40:17

day03-字符编码与转换的相关文章

python中的字符编码和转换

1.字符编码初识 最初的字符集是ASCII,ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号. 随着计算机技术的普及和发展,255个符号显然不满足全世界国家对符号数量的需求,因此各国开始发展自己的一套编码.那么针对中文: 为了

Gnu Linux下文件的字符编码及转换工具

/*********************************************************************  * Author  : Samson  * Date    : 07/03/2014  * Test platform:  *              3.11.0-12-generic #19-Ubuntu  *              GNU bash, version 4.2.45  * ****************************

Python基础之 一 字符编码及转换

python2 / python3编码转换 先上图一张: 说明:python编码转换的流程是 先进行decode解码,然后进行encode编码 解释: u'你好'  -->带u表示为unicode编码 b'\xc4\xe3\xba\xc3'   --> 带b的表示bytes类型由于utf8 是unicode的扩展,所以unicode和utf8之间是可以直接打印 注意:所有decode动作都是将已编码文件解码为unicode,然后在进行其他编码格式转换(通过encode) 直接举例说明:#pyt

mb_detect_encoding() 运行sitemap.php 字符编码不能转换修改php.ini

1.phpinfo() 找php.ini位置 2.备份然后 php.ini文件中顶部添加extension=php_mbstring.dll Call to undefined function mb_detect_encoding() 错误 分类: PHP wordpress 2014-08-08 20:51 1122人阅读 评论(0) 收藏 举报 一.Fatal error: Call to undefined function: iconv() in C:\Program Files\Ap

3 -11 字符编码与转换

中文的字符编码  是 gbk   windows 默认的字符编码也是gbk 每个国家都有自己的字符编码 为了 统一 就有了 unicode ##unicode 不管英文中文都占 2个字节  16位 ascii码 一个英文一个字节  不能存中文.. 8 位 英文 或特殊字符 转换后 中文 变成3个字节 其中utf-8 是  Unicode的 可变长度的扩展级  encode 是编码    decode  是 解码    import sysprint(sys.getdefaultencoding(

python3中各个字符编码的转换

a='我很好' ####python3 默认的编码为unicode###unicode>gb2312unicode_gb2312=a.encode('gb2312') ###因为默认是unicode所以不需要decode(),直接encode成想要转换的编码如gb2312print('我的gb2312',unicode_gb2312) ###返回结果: 我的gb2312 b'\xce\xd2\xba\xdc\xba\xc3'###gb2312>utf8gb2312_utf8=unicode_g

day3--集合、文件操作、字符编码与转换、函数

list1 = set([1, 2, 3, 4, 5, 6, 5, 5, 5])list2 = set([11, 2, 36, 'a', 5, 6, 5, 5, 5])list3 = set([1, 2, 3])list4 = set(['a', 'b', 'c']) 求交集print(list1.intersection(list2))print(list1&list2)输出{2, 5, 6} 求并集print(list1.union(list2))print(list1 | list2)输出

php字符编码转换之gb2312转为utf8(转)

在php中字符编码转换我们一般会用到iconv与mb_convert_encoding进行操作,但是mb_convert_encoding在转换性能上比iconv要差很多哦.string iconv ( string in_charset, string out_charset, string str ) 注意:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符

C语言字符编码处理

一.简介 由于历史原因,国际化的文字常常由于语言或者国家的原因使用不同的编码.libiconv库为需要做转换的应用提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换. 二.安装 http://www.gnu.org/software/libiconv/ 三.API iconv函数族有三个函数,原型如下: iconv_t iconv_open(const char *tocode, const char *fromcode); 此函数说明将要进行哪两种编码的转换,tocode

Python 2中万恶的字符编码

Python2中如果文件存在中文,必须要指定#-*- coding:utf8 -*-或#coding:utf8,否则会报错.那这是为什么呢? 我们知道,在计算机发展初期,计算机只能识别字母,数字和一些基本符号,其使用8位存储空间存储所有的内容,也就是2^8=256个不同的结果,这就是ASCII码.在当时的情况下,并没有想到日后其他语言文字的扩展,随着不断的发展,对计算机的使用越来越广泛,使用8位存储空间早已不能满足人们的日常需求,所以Unicode(万国码)就这样诞生了.顾名思义,Unicode