首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

python第二十八课——编码小常识

2.内存和硬盘: 内存:计算机硬件组成部分之一,它是一个容器,用来存储数据;处理数据速度快, 存储数据量小;断电死机数据会丢失,短暂性存储数据 硬盘:计算机硬件组成部分之一,它是一个容器,用来存储数据;处理数据速度慢, 存储数据量大,断电死机数据不会丢失,数据的持久存储 3.字节和字符 字节:计算机的存储数据的单位,底层唯一能够识别并且运算的数据 字符:人类将字节封装为另一种能直接识别的数据单位,底层还是字节 4.如何区分字节文件和字符文件 如果使用文本编辑器打开能看得懂(不会乱码)那它就是一个字符文件, 反之,它是一个字节文件 提问:常见的字节文件和字符文件有哪些?(枚举出一些) 字节文件:图片文件(.jpg、.png...)、视频文件(.avi、.mp4、.rmb...)、音频文件(.mp3...) 字符文件:.txt、.py、.java、.js、.html、.css、.php... 思考:.doc结尾的文件是字节还是字符文件? 是字节文件,因为.doc结尾的文件中既可以包含字符内容,也可以包含图片、颜色设置...操作 思考:计算机数据层面,一切皆字节,对不对? 对的;因为计算机底层唯一能够识别和运算的都是字节数据... 5.字符编码(字符集) ascii码表:U.S.A设计出来的,范围非常小;不包含很多国家的文字,英文字符占用内存1个字节 utf-8码表:现今比较通用的一张编码表,包含了世界上所有的文字内容,范围:0~65535之间, 1个汉字占用内存3个字节,1个英文字符占用内存1个字节 gbk码表:gbk属于gb2312的扩充版,兼容了gb2312中的所有字符,加入更多的一些汉字内容, 1个汉字占用内存2个字节,1个英文字符占用内存1个字节, 在我们中国环境下,大多数情况默认的都是gbk作为编码 6.编码和解码: 编码:让数据从看的懂到看不懂,就是编码 解码:让数据从看不懂到看得懂,就是解码 【注意】 编码和解码如果不一致会怎么样? 1).会出现乱码现象 2).会报错 不管是上述的1还是2都是不理想的结果,我们都需要避免 字符串的两个函数引入: encode(encoding,errors):对字符串数据进行编码操作,得到一个bytes类型的数据 decode(encoding,errors):对字符串数据进行解码操作,得到一个str类型的数据 演示eccode()和decode()函数的使用:

01

40OutputStreamWriter

写的转换流,写我们相要写的编码文件 java.io.OutputStreamWriter etends Writer InputStreamReader是字节流通向字符流的桥梁,它使用指定的Charset 将要写入流中的字符编码成字节。(编码:把能看懂的变成看不懂的) 继承父类,共性成员方法: void write(int c)写入单个字符 void write(char[]) 写入字符数组 abstract void writer(char[] cbuf,int off,int len) 写入字符数组的一部分,off字符数组开始索引,len写入字符个数 void write(String str) 写入字符串 void write(String str,int off,int len) 写入字符串的某一部分,off字符串开始索引,len写入字符个数 void flush()刷新该留的缓冲 void close() 关闭此流,但要先刷新它 构造方法: OutputStreamWriter(OutputStream out)创建使用默认字符编码的 OutputStreamWriter OutputStreamWriter(OutputStream out,String charsetName)创建使用指定的字符集的OutputStreamWriter 参数: OutputStream out:字节输出流,可以用来写转换之后的字节到文件中 String charsetName:指定的编码表的名称,不区分大小写,可以是utf-8,gbk/GBK ,不指定默认UTF-8

03

Unicode编码与ASCII码的区别

Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。   因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte)。一个字节能表示的最大的整数就是255(2^8-1=255),而ASCII编码,占用0 - 127用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。   如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。   类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

01
领券