ascii文件

Unicode字符集和多字节字符集

拜拜、爱过 提交于 2020-04-01 04:23:52
在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(charset)。 在最初的时候,Internet上只有一种字符集——ANSI的ASCII字符集,它使用7 bits来表示一个字符,总共表示128个字符,其中包括了英文字母、数字、标点符号等常用字符。之后,又进行扩展,使用8 bits表示一个字符,可以表示256个字符,主要在原来的7 bits字符集的基础上加入了一些特殊符号例如制表符。 后来,由于各国语言的加入,ASCII已经不能满足信息交流的需要,因此,为了能够表示其它国家的文字,各国在ASCII的基础上制定了自己的字符集,这些从ANSI标准派生的字符集被习惯的统称为ANSI字符集,它们正式的名称应该是MBCS(Multi-Byte Chactacter System,即多字节字符系统)。这些派生字符集的特点是以ASCII 127 bits为基础,兼容ASCII 127,他们使用大于128的编码作为一个Leading Byte,紧跟在Leading Byte后的第二(甚至第三)个字符与Leading Byte一起作为实际的编码。这样的字符集有很多,我们常见的GB-2312就是其中之一。 例如在GB-2312字符集中,“连通”的编码为C1 AC CD A8,其中C1和CD就是Leading Byte

python 编码

谁说我不能喝 提交于 2020-03-30 02:36:19
1. python2中默认使用的是ASCII码. 所以不支持中文. 如果需要在Python2中更改编码. 需要在文件的开始编写: # -*- encoding:utf-8 -*- 2. python3中:内存中使用的是unicode码.     1. ASCII : 最早的编码.里面有英文大写字母,小写字母, 数字, 一些特殊字符. 没有中文, 8个01代码, 8个bit, 1个byte     2. GBK: 中文国标码,里面包含 ASCII编码和中文常用编码. 16个bit, 2个byte     3. UNICODE: 万国码,里面包含了全世界所有国家文字的编码. 32个bit, 4个byte, 包含了ASCII     4. UTF-8: 可变长度的万国码. 是unicode的一种实现. 最小字符占8位     1.英文: 8bit 1byte     2.欧洲文字:16bit 2byte     3.中文:24bit 3byte 综上, 除了ASCII码以外, 其他信息不能直接转换. 在python3的内存中. 在程序运行阶段. 使用的是unicode编码. 因为unicode是万国码. 什么内容都可以进行显示. 那么在数据传输和存储的时候由于unicode比较浪费空间和资源. 需要把unicode转存成UTF-8或者GBK进行存储. 怎么转换呢

python编码问题(2)

谁都会走 提交于 2020-03-24 19:32:36
1 编码、解码   如同密码领域一样,从明文到密码是加密,从密码到明文是解密。在python中,(编码:unicode-->str;) 解码(str-->unicode). 既然是编码,那么就和密码领域一样,编码和解码自然涉及到编码/解码方案(对应加密或者解密算法),unicode相当于明文。在python中,编码函数是encode(),解码函数是decode()。需要注意的一点是,如果我们调用str.encode(),这里涉及到一个隐士的类型转化,会现将str转化成unicode,才能进行编码,这也是不太容易理解的地方。所以,str.encode()实际上就等价于str.decode(sys.defaultencoding).encode().而sys.defaultencoding一般是ascii,它是不能用来编码中文字符的。  字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。   decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码

【2020Python修炼记13】Python语法入门—字符编码

夙愿已清 提交于 2020-03-12 19:06:12
一、知识储备 1、三大核心硬件——CPU,内存,硬盘 所有软件都是运行硬件之上的,与运行软件相关的三大核心硬件为cpu、内存、硬盘 #1、软件运行前,软件的代码及其相关数据都是存放于硬盘中的 #2、任何软件的启动都是将数据从硬盘中读入内存,然后cpu从内存中取出指令并执行 #3、软件运行过程中产生的数据最先都是存放于内存中的,若想永久保存软件产生的数据,则需要将数据由内存写入硬盘 2、文本编辑器读取文件内容的流程 #阶段1、启动一个文件编辑器(文本编辑器如nodepad++,pycharm,word) #阶段2、文件编辑器会将文件内容从硬盘读入内存 #阶段3、文本编辑器会将刚刚读入内存中的内容显示到屏幕上 3、Python解释器执行文件的流程 以python test.py为例,执行流程如下: #阶段1、启动python解释器,此时就相当于启动了一个文本编辑器 #阶段2、python解释器相当于文本编辑器,从硬盘上将test.py的内容读入到内存中 #阶段3、python解释器解释执行刚刚读入的内存的内容,开始识别python语法 4、总结—Python解释器&文本编辑器的异同 #1、相同点: 前两个阶段二者完全一致,都是将硬盘中文件的内容读入内存,详解如下 python解释器是解释执行文件内容的,因而python解释器具备读py文件的功能,这一点与文本编辑器一样 #2、不同点:

NetAnalyzer笔记 之 十一 打造自己的协议分析语言(1)初衷与语法构想

此生再无相见时 提交于 2020-03-08 22:19:48
回头看看NetAnalyzer开发系文档上次一篇竟然是2016年,老脸一红。不过这几年墨云成功过的讨到一个温柔贤淑的老婆,有了一个幸福的家庭,去年9月又有了一个大胖儿子,想想也就释然了^_^ 其实这几年NetAnalyzer的开发一直也没有中断过,上一篇的NetAnalyzer还是3.x系列的版本,现在最新的版本已经是 5.6.0.38 版本了,去年8月份更新的 NetAnalyzer官网地址: http://twzy.sinaapp.com/ 废话不多说了,回到今天的主题--打造自己的协议分析语言。 1. 初衷 《道德经》中有“道生一,一生二,二生三,三生万物”的说法,描述了万物从少到多,从简单到复杂的一个过程。在计算机中我们所面对的各种各样的文件,如:图片,文本,音乐甚至最基本的程序文件其实都是通过二进制数据也就是大量的0或1的方式存储在硬盘或内存中的。但是如何从0和1转换为我们熟知的各种媒体数据呢,这就需要根据0和1不同的排列顺来完成,这就是编码方案,而这种编码方案更通俗的来说就是一种协议,这种协议来约束不同的设备,不同的系统当遇到对应的数据是应该将其解析为什么文件。 当今网络作为与我们生活朝夕相关的事物,给我们带来了便利的生活体验,有些应用甚至可以做到计算机与智能手机之间的无缝切换,这就得益于网络中各个层次的协议完美对接。目前的互联网模型大部分都是基于经典的TCP/IP协议

深入理解Python字符编码

社会主义新天地 提交于 2020-03-07 12:45:24
不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError、UnicodeDecodeError 错误,每当遇到错误我们就拿着 encode、decode 函数翻来覆去的转换,有时试着试着问题就解决了,有时候怎么试都没辙,只有借用 Google 大神帮忙,但似乎很少去关心问题的本质是什么,下次遇到类似的问题重蹈覆辙,那么你有没有想过一次性彻底把 Python 字符编码给搞懂呢? 完全理解字符编码 与 Python 的渊源前,我们有必要把一些基础概念弄清楚,虽然有些概念我们每天都在接触甚至在使用它,但并不一定真正理解它。比如:字节、字符、字符集、字符码、字符编码。 字节 字节(Byte)是计算机中数据存储的基本单元,一字节等于一个8位的比特,计算机中的所有数据,不论是保存在磁盘文件上的还是网络上传输的数据(文字、图片、视频、音频文件)都是由字节组成的。 字符 你正在阅读的这篇文章就是由很多个字符(Character)构成的,字符一个信息单位,它是各种文字和符号的统称,比如一个英文字母是一个字符,一个汉字是一个字符,一个标点符号也是一个字符。 字符集 字符集(Character Set)就是某个范围内字符的集合,不同的字符集规定了字符的个数,比如 ASCII 字符集总共有128个字符,包含了英文字母、阿拉伯数字

001_Python2 的中文编码处理

余生颓废 提交于 2020-03-06 04:33:16
最近业务中需要用 Python 写一些脚本。尽管脚本的交互只是命令行 + 日志输出,但是为了让界面友好些,我还是决定用中文输出日志信息。 很快,我就遇到了异常: Python代码 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0- 3: ordinal not in range( 128) 为了解决问题,我花时间去研究了一下 Python 的字符编码处理。网上也有不少文章讲 Python 的字符编码,但是我看过一遍,觉得自己可以讲得更明白些。 下面先复述一下 Python 字符串的基础,熟悉此内容的可以跳过。 对应 C/C++ 的 char 和 wchar_t, Python 也有两种字符串类型,str 与 unicode: Python代码 # -*- coding: utf-8 -*- # file: example1.py import string # 这个是 str 的字符串 s = '关关雎鸠' # 这个是 unicode 的字符串 u = u '关关雎鸠' print isinstance(s, str) # True print isinstance(u, unicode) # True print s.__class__ # <type 'str'> print u._

也谈 Python 的中文编码处理

我只是一个虾纸丫 提交于 2020-03-06 04:32:59
最近业务中需要用 Python 写一些脚本。尽管脚本的交互只是命令行 + 日志输出,但是为了让界面友好些,我还是决定用中文输出日志信息。 很快,我就遇到了异常: Python代码 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0 - 3 : ordinal not in range( 128 ) 为了解决问题,我花时间去研究了一下 Python 的字符编码处理。网上也有不少文章讲 Python 的字符编码,但是我看过一遍,觉得自己可以讲得更明白些。 下面先复述一下 Python 字符串的基础,熟悉此内容的可以跳过。 http://in355hz.iteye.com/blog/1860787 对应 C/C++ 的 char 和 wchar_t, Python 也有两种字符串类型,str 与 unicode: Python代码 # -*- coding: utf-8 -*- # file: example1.py import string # 这个是 str 的字符串 s = '关关雎鸠' # 这个是 unicode 的字符串 u = u '关关雎鸠' print isinstance(s, str) # True print isinstance(u, unicode) # True

也谈 Python 的中文编码处理

穿精又带淫゛_ 提交于 2020-03-06 04:32:37
转载自: http://in355hz.iteye.com/blog/1860787 最近业务中需要用 Python 写一些脚本。尽管脚本的交互只是命令行 + 日志输出,但是为了让界面友好些,我还是决定用中文输出日志信息。 很快,我就遇到了异常: Python代码 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0- 3: ordinal not in range( 128) 为了解决问题,我花时间去研究了一下 Python 的字符编码处理。网上也有不少文章讲 Python 的字符编码,但是我看过一遍,觉得自己可以讲得更明白些。 下面先复述一下 Python 字符串的基础,熟悉此内容的可以跳过。 对应 C/C++ 的 char 和 wchar_t, Python 也有两种字符串类型,str 与 unicode: Python代码 # -*- coding: utf-8 -*- # file: example1.py import string # 这个是 str 的字符串 s = '关关雎鸠' # 这个是 unicode 的字符串 u = u '关关雎鸠' print isinstance(s, str) # True print isinstance(u, unicode) # True

ASCII码表

你。 提交于 2020-02-27 10:52:57
Bin Oct Dec Hex 缩写/字符 解释 0000 0000 00 0 0x00 NUL(null) 空字符 0000 0001 1 1 0x01 SOH(start of headline) 标题开始 0000 0010 2 2 0x02 STX (start of text) 正文开始 0000 0011 3 3 0x03 ETX (end of text) 正文结束 0000 0100 4 4 0x04 EOT (end of transmission) 传输结束 0000 0101 5 5 0x05 ENQ (enquiry) 请求 0000 0110 6 6 0x06 ACK (acknowledge) 收到通知 0000 0111 7 7 0x07 BEL (bell) 响铃 0000 1000 10 8 0x08 BS (backspace) 退格 0000 1001 11 9 0x09 HT (horizontal tab) 水平制表符 0000 1010 12 10 0x0A LF (NL line feed, new line) 换行键 0000 1011 13 11 0x0B VT (vertical tab) 垂直制表符 0000 1100 14 12 0x0C FF (NP form feed, new page) 换页键 0000 1101 15