字符编码 and 字节和字符串转换(待补充)
ascii用一个字节(8位二进制)代表一个字符
Unicode常用2个字节(16位二进制)代表一个字符,生僻字需要用四个字节
汉字中已经超出了ASCII编码的范围,用Unicode,
Unicode兼容ascii,也兼容万国,是世界的标准
乱码问题消失了,所有的文档我们都使用但是新问题出现了,如果我们的文档通篇都是英文,你用Unicode会比ascii耗费多一倍的空间,在存储和传输上也十分的低效
本着节约的精神,又出现了把Unicode编码转化为"可変长编码"的UTF8编码,utf8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成一个字节,汉字通常是三个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用utf8编码就能节省空间
utf8编码还有一个额外的好处,就是ascii编码实际上可以被看成是utf8编码的一部分,所以,大量只支持ascii编码的历史遗留软件可以在utf8编码下继续工作
python3中有两种字符串类型str和bytes
python3中str就是unicode
python2要加u的前缀才算是Unicode
a='呵呵'
print(type(a))#<class 'str'>
b=bytes(a,encoding='utf8')
print(b)#b'\xe5\x91\xb5\xe5\x91\xb5'
c=str(b,encoding='utf8')
print(c)#呵呵 python3默认字符串就是Unicode
a='呵呵'
#a可以直接encode成任意编码格式
b=a.encode('utf8')
print(b)#字节 b'\xe5\x91\xb5\xe5\x91\xb5'
print(type(b))#<class 'bytes'>
c=b.decode('utf8') print(c)#字符串
import sys
print(sys.getdefaultencoding())#可以查看默认编码
字符编码 and 字节和字符串转换(待补充)的更多相关文章
- encode_utf8 把字符编码成字节 微信例子
##µ¼Èë encode_json decode_json use JSON qw/encode_json decode_json/; print "1111111111111111-\$ ...
- encode_utf8 把字符编码成字节 decode_utf8解码UTF-8到字符
encode_utf8 $octets = encode_utf8($string); Equivalent to "$octets = encode("utf8", $ ...
- Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化 format函数字符串格式化 帮助
Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化 format函数字符串格式化 帮助 目录 Pychar ...
- python学习第四天 --字符编码 与格式化及其字符串切片
字符编码 与格式化 第三天已经知道了字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采 ...
- 字符编码及字节串bytes类型
1 字符编码简介 ASCII码:美国人发明并使用,用1个字节(8位二进制)代表一个字符,ASCII码是其他任意编码表的子集(utf-16除外). Unicode:包含和兼容全世界的语言,与全世界的语言 ...
- C语言字符篇(一)字符串转换函数
#include <stdlib.h> double atof(const char *nptr); 将字符串转换成双精度浮点数 int atoi(const char *npt ...
- String与基本类型,字符数组,字节数组的转换
String与基本数据类型 * 基本数据 --->字符串(String) * 1.基本数据类型值 +"" --->最简单 * 2.使用包装类中的toString(参数类 ...
- python 字节与字符串转换
name = 'laogaoyang' nameBytes = name.encode('utf-8') # 字节 nameStr = nameBytes.decode('utf-8')# 字符串 p ...
- Java精选笔记_IO流(转换流、常用流、流操作规律、字符编码)
IO流 用来处理设备之间的数据传输,java对数据的操作是通过流的方式,java用于操作流的对象都在IO包中 按操作数据分为:字节流和字符流:按流向分为:输入流和输出流. 程序从输入流中读取数据,向输 ...
随机推荐
- Python内置函数之chr()
参数是一个整型对象: chr(integer) 返回整型对应的Unicode字符对象. 例子: >>> chr() '\x0c' >>> chr() 'ⲓ' > ...
- layui表格的批量删除功能
// 批量删除功能 // 1.得到table选中行内容 // 2.得到删除需要的唯一值,一般是id; // 3.将所要删除的项加入到数组中: // 4.判断是否选中: // 5.发送ajax请求,并附 ...
- .net版本和操作系统
转自: http://msdn.microsoft.com/zh-cn/library/bb822049(v=vs.110).aspx 服务器操作系统 包括 还可以安装 Windows Server ...
- Git使用技巧(3)-- 远程操作
Git远程操作详解 作者: 阮一峰 编辑更新:shifu204 日期: 2016年9月1日 Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操 ...
- 复制代码后调试程序,报错:在当前上下文中不存在名称“InitializeComponent”
今天在看微软的Silverlight Toolkit Samples,并对其中的项目进行MSBuild, 编译器总是报这个错误“在当前上下文中不存在名称“InitializeComponent”” 找 ...
- 在Ubuntu中搭建***服务
1) install shadowsocks$ sudo apt-get install python-pip $ sudo pip install shadowsocks 2) write /etc ...
- KnockOut 绑定之foreach绑定(mvc+knockout)
什么时候使用foreach绑定 foreach绑定对于数组中的每一个元素复制一节标记语言,也就是html,并且将这节标记语言和数组里面的每一个元素绑定.当我们呈现一组list数据,或者一个表格的时候, ...
- 怎么用源程序把ChemDraw结构复制到Word文档
在学习化学过程中,不可避免的会接触到各种化学结构.这个时候就需要通过绘制化学结构来进行这方面的学习和传播.ChemDraw Professional 15就可以辅助完成这方面的工作.很多的用户朋友会通 ...
- Convert.ToInt32(string '000000003') 变成了 3
Convert.ToInt32(string '000000003') 变成了 3 但是在查询的时候需要用的是string 这里的convert.toint32 反而起了坏作用,不是所有的时候都要用c ...
- 《从零开始学Swift》学习笔记(Day 23)——尾随闭包
原创文章,欢迎转载.转载请注明:关东升的博客 闭包表达式可以作为函数的参数传递,如果闭包表达式很长,就会影响程序的可读性.尾随闭包是一个书写在函数括号之后的闭包表达式,函数支持将其作为最后一个参数调用 ...