ascii文件

字符编码

喜欢而已 提交于 2020-02-11 22:55:12
一 什么是字符编码   计算机要想工作必须通电,即用‘电’驱使计算机干活,也就是说‘电’的特性决定了计算机的特性。电的特性即高低电平(人类从逻辑上将二进制数1对应高电平,二进制数0对应低电平),关于磁盘的磁特性也是同样的道理。   结论:计算机只认识数字   很明显,我们平时在使用计算机时,用的都是人类能读懂的字符(用高级语言编程的结果也无非是在文件内写了一堆字符),如何能让计算机读懂人类的字符?   必须经过一个过程:   #字符--------(翻译过程)------->数字   #这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之为字符编码. 二 字符编码的发展史与分类(了解) 计算机由美国人发明,最早的字符编码为ASCII,只规定了 英文字母数字和一些特殊字符与数字 的对应关系。最多只能用 8 位来表示(一个字节=1byte字节=8bit),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号 当然我们编程语言都用英文没问题,ASCII够用,但是在处理数据时,不同的国家有不同的语言,日本人会在自己的程序中加入日文,中国人会加入中文。 而要表示中文,单拿一个字节表表示一个汉字,是不可能表达完的(连小学生都认识两千多个汉字),解决方法只有一个,就是一个字节用>8位2进制代表,位数越多,代表的变化就多,这样,就可以尽可能多的表达出不通的汉字 所以

Failure talking to yum: 'ascii' codec can't encode characters in position 168-172: ordinal not in ra

浪尽此生 提交于 2020-02-04 04:35:36
文章目录 Failure talking to yum: 'ascii' codec can't encode characters in position 168-172: ordinal not in range(128) 如何配置yum数据源 **什么是yum** **如何配置yum仓库** 如何修改国内数据源 Centos7修改国内阿里数据源 Failure talking to yum: ‘ascii’ codec can’t encode characters in position 168-172: ordinal not in range(128) 什么时候会出现这个问题 当你使用yum命令下载依赖包的时候,若没有配置yum仓库的情况下会出现这个问题问题 怎么解决? 很简单,配置yum仓库 如何配置yum数据源 什么是yum Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。 如何配置yum仓库 yum的配置文件在/etc/yum.repos.d/目录下。 用vim为rhel7.repo文件进行配置(rhel7是自定义的

python中编码问题

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-31 16:26:22
写在前面: 本文是很基础的东西,这些基础的东西有一个特点,看一遍会了,但其中很多精髓其实被忽略了,建议你货比三家,细细品尝编码之美。还有,这文章是我熬夜写的,可能有错,请批判性阅读,谢谢。 0x00:为社么会出现多种编码? 相信计算机专业的都知道,所有的数据(文本,音频,视频等等)在计算机内部都是以二进制形式来表示的。而计算机内部为什么采用二进制则是由硬件决定的(计算机采用了具有两种稳定状态的二值电路)。这样,就引出一个问题: 我们人类不适合直接看二进制。 因此,需要用一种方法,将二进制转为我们能看懂的东西。 编码就应运而生了。 0x01:编码发展历史 第一阶段: 在计算机中,所有的数据只可能是0或者1(用高电平和低电平分别表示1和0),那么我们通常看到的字符也就只能用0和1来表示呀。于是科学家们(这里指的是美国的科学家)就想出一个办法,把一个特定的数字对应一个特定的字母进行存储和传输,比如我需要存储字母a,那么我存入一个数字97(即在计算机中存入二进制(01100001),这个过程叫做编码(encode),而我们在读取数据的时候,当遇到97时,我们就让计算机显示字母a,这个过程叫做解码(decode)。 这里你应该知道: 计算机看懂的东西我们看不懂,我们看懂的东西,计算机看不懂。 把计算机看懂的东西(二进制(01100001))变成我们看懂的东西(数字97,也就是a)

c++打印ascii码表--wcout版

泪湿孤枕 提交于 2020-01-30 07:27:53
/* * C++ Program to Print ASCII table (0 - 127) */ #include<iostream> #include<iomanip> using namespace std; wchar_t const* character[] = {L"NULL(空)", L"SOH(标题开始)", L"STX(正文开始)", L"ETX (正文结束)", L"EOT (传送结束)", L"ENQ (询问)", L"ACK (确认)", L"\\a",L"\\b",L"\\t",L"\\n",L"\\v",L"\\f",L"\\r",L"SO(移出)",L"SI(移入)", L"DLE(退出数据链)", L"DC1 (设备控制1)", L"DC2(设备控制2)", L"DC3(设备控制3)", L"DC4(设备控制4)", L"NAK (反确认)", L"SYN (同步空闲)", L"ETB (传输块结束)", L"CAN (取消)", L"EM (媒介结束)", L"SUB (替换)", L"ESC (退出)", L"FS (文件分隔符)", L"GS (组分隔符)", L"RS (记录分隔符)", L"US (单元分隔符)", L"(空格)"}; int main() { locale::global(locale("")); wcout.imbue

c++打印ascii码表--cout版

…衆ロ難τιáo~ 提交于 2020-01-29 23:14:19
/* * C++ Program to Print ASCII table (0 - 127) */ #include<iostream> #include<iomanip> using namespace std; char const* character[] = {"NULL(空)", "SOH(标题开始)", "STX(正文开始)", "ETX (正文结束)", "EOT (传送结束)", "ENQ (询问)", "ACK (确认)", "\\a","\\b","\\t","\\n","\\v","\\f","\\r","SO(移出)","SI(移入)", "DLE(退出数据链)", "DC1 (设备控制1)", "DC2(设备控制2)", "DC3(设备控制3)", "DC4(设备控制4)", "NAK (反确认)", "SYN (同步空闲)", "ETB (传输块结束)", "CAN (取消)", "EM (媒介结束)", "SUB (替换)", "ESC (退出)", "FS (文件分隔符)", "GS (组分隔符)", "RS (记录分隔符)", "US (单元分隔符)", "(空格)"}; int main() { char c; int row; cout << " ASCII Table" << endl << "=============" << endl;

关于ASCII,Unicode和UTF-8

孤街浪徒 提交于 2020-01-28 17:13:46
自己也不是很明白这些编码,百度了一下,整理出来与大家分享分享,在此感谢作者。 先说说这些编码 ANSI:最早的时候计算机ASCII码只能表示256个符号(含控制符号),这个字符集表示英文字母足够,其中,我们键盘上可见的符号的编码范围是从32到126(大小写英文字母、数字、英文符号等)。但表示汉字、日语、韩语就不太够用了,汉字常用字有3000多个。 但是中国人也要用电脑打字,于是,中国人就研究出来了最早的中文字符集GB2312(GBK就是后来的扩展),GB2312的做法是,把ASC码取值范围的128~255这个区间挪用了一下,用两个ASC码表示一个汉字,这样可用的编码范围用十六进制表示就是0x8080到0xFFFF,这大概能表示一万多个符号,足够了。[注:实际没用那么多,GBK的范围是8140-FEFE] 那个时候,计算机技术还不发达,各个国家搞自己的,比如台湾,也另搞了一套,叫BIG5(俗称:大五码),跟大陆的也不太一样,但方法是类似的,都是用0x80到0xFF这个区间。 然后日语(有编码JIS)、韩语等等也各搞一套。 这些国家的编码区间都是重叠的,但同一个汉字(比如有一些汉字同时存在于简体、繁体、日语汉字中)有不同的编码,很混乱是不是?但也凑合用了。编码不同导致了很多麻烦,比如一个网页,如果你不知道它是什么编码的,那么你可能很难确定它显示的是什么,一个字符可能是大陆简体/台湾繁体

什么是二进制文件

谁说我不能喝 提交于 2020-01-27 06:52:30
转自: https://baike.baidu.com/item/%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6/996661 包含在 ASCII 及扩展 ASCII 字符 中编写的数据或程序指令的文件。 计算机文件 基本上分为二种:二进制文件和 ASCII(也称 纯文本文件 ),图形文件及文字处理程序等 计算机程序 都属于二进制文件。这些文件含有特殊的格式及计算机代码。ASCII 则是可以用任何文字处理程序阅读的简单文本文件。 中文名 二进制文件 外文名 BINary files 外国语缩写 BIN(作 文件扩展名 ) 目录 1 定义 2 使用二进制文件的好处 3 二进制文件的储存方式 4 如何使用语句操作二进制文件 5 用例 定义 广义的二进制文件即指文件,由文件在 外部设备 的存放形式为二进制而得名。狭义的二进制文件即除文本文件以外的文件。文本文件是一种由很多行 字符 构成的 计算机文件 。文本文件存在于 计算机系统 中,通常在文本文件最后一行放置文件结束标志。文本文件的 编码 基于字符定长, 译码 相对要容易一些;二进制文件 编码 是变长的,灵活利用率要高,而译码要难一些,不同的二进制文件译码方式是不同的。 从本质上来说他们之间没有什么区别,因为他们在 硬盘 上都有一种的存放方式--二进制,但是如果要对他们有些区分的话

xls的读写

不想你离开。 提交于 2020-01-18 01:06:52
import xlrd # 读取xls文件 # 打开xls文件 data = xlrd.open_workbook('x1.xls') print(type(data)) # 获取表Sheet1 table = data.sheet_by_name(u'Sheet1') print(type(table)) # 获取行数据 arr = table.row_values(0) print(arr) # 获取列数据 arr2 = table.col_values(0) print(arr2) # 统计行数 rows_count = table.nrows print(rows_count) # 统计列数 cols_count = table.ncols print(cols_count) # 获取单元格的值 v00 = table.cell(0, 0).value print(v00) import xlwt # 写入xls文件 # 新建xls,并设置ascii编码 workbook = xlwt.Workbook(encoding='ascii') # 新建sheet表 worksheet = workbook.add_sheet('my sheet') # 向表中写入数据’中文汉字‘ worksheet.write(0, 0, label='中文汉字') # 保存xls,并设置名称

ASCII和万国码

房东的猫 提交于 2020-01-16 23:21:48
什么是ASCII 计算机的起初是使用内存中的0101来表示数和机器码。如何用内存中的bit来表示文本一直困扰着人们,毕竟人类主要的信息展示是文字,而不是苦涩的0101。后来ASCII码的发明成功的解决了“部分”问题。说白了ASCII码就是解决了一个以数字形式表示文本的问题。 ASCII码全称为美国信息交换标准码“American Standard Code for Information Interchange”。目前它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位) 7位ASCII码是用七位二进制数进行编码的,可以表示128个字符。其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。 第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等; 第33

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

瘦欲@ 提交于 2020-01-11 09:56:41
python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0x?? in position 1: ordinal not in range(128),python没办法处理非ascii编码的,此时需要自己设置将python的默认编码,一般设置为utf8的编码格式。 解决方法: 1、在程序文件中以下三句 import sys reload ( sys ) sys . setdefaultencoding ( 'utf8' ) 2、在Python的Lib\site-packages文件夹下新建一个sitecustomize.py文件,内容为: #coding=utf8 import sys reload ( sys ) sys . setdefaultencoding ( 'utf8' ) 3、在命令行修改,仅本会话有效: 1)通过>>>sys.getdefaultencoding()查看当前编码(若报错,先执行>>>import sys >>>reload(sys)); 2)通过>>>sys.setdefaultencoding(‘utf8’)设置编码 重启Python解释器,发现编码已被设置为utf8。 文章资料源于网络