编码转换

Linux 文件编码大挪移

和自甴很熟 提交于 2020-03-23 11:15:52
3 月,跳不动了?>>> 你可能已经知道,计算机除了二进制数据,是不会理解和存储字符、数字或者任何人类能够理解的东西的。一个二进制位只有两种可能的值,也就是0或1,真或假,是或否。其它的任何事物,比如字符、数据和图片,必须要以二进制的形式来表现,以供计算机处理。 简单来说,字符编码是一种可以指示电脑来将原始的 0 和 1 解释成实际字符的方式,在这些字符编码中,字符都以一串数字来表示。 字符编码方案有很多种,比如 ASCII、ANCI、Unicode 等等。下面是 ASCII 编码的一个例子。 字符 二进制 A 01000001 B 01000010 在 Linux 中,命令行工具iconv用来将使用一种编码的文本转化为另一种编码。 你可以使用 file 命令,并添加-i或--mime参数来查看一个文件的字符编码,这个参数可以让程序像下面的例子一样输出字符串的 mime (Multipurpose Internet Mail Extensions) 数据: $ file -i Car.java $ file -i CarDriver.java 在 Linux 中查看文件的编码 iconv 工具的使用方法如下: $ iconv option $ iconv options -f from-encoding -t to-encoding inputfile(s) -o

Linux 文件编码大挪移

梦想的初衷 提交于 2020-03-23 11:13:32
3 月,跳不动了?>>> 在这篇教程中,我们将解释字符编码的含义,然后给出一些使用 命令 行工具将使用某种字符编码的文件转化为另一种编码的例子。最后,我们将一起看一看如何在 Linux 下将使用各种字符编码的文件转化为 UTF-8 编码。 你可能已经知道,计算机除了二进制数据,是不会理解和存储字符、数字或者任何人类能够理解的东西的。一个二进制位只有两种可能的值,也就是 0 或 1 , 真 或 假 , 是 或 否 。其它的任何事物,比如字符、数据和图片,必须要以二进制的形式来表现,以供计算机处理。 简单来说,字符编码是一种可以指示电脑来将原始的 0 和 1 解释成实际字符的方式,在这些字符编码中,字符都以一串数字来表示。 字符编码方案有很多种,比如 ASCII、ANCI、Unicode 等等。下面是 ASCII 编码的一个例子。 字符 二进制 A 01000001 B 01000010 在 Linux 中, 命令 行工具 iconv 用来将使用一种编码的文本转化为另一种编码。 你可以使用 file 命令,并添加 -i 或 --mime 参数来查看一个文件的字符编码,这个参数可以让程序像下面的例子一样输出字符串的 mime (Multipurpose Internet Mail Extensions) 数据: $ file -i Car.java $ file -i CarDriver

escape()、encodeURI()、encodeURIComponent()区别详解

馋奶兔 提交于 2020-03-23 07:11:52
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。 下面简单介绍一下它们的区别 1 escape()函数 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。 语法 escape(string) 参数 描述 string 必需。要被转义或编码的字符串。 返回值 已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。 说明 该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换。 2 encodeURI()函数 定义和用法 encodeURI() 函数可把字符串作为 URI 进行编码。 语法 encodeURI(URIstring) 参数 描述 URIstring 必需。一个字符串,含有 URI 或其他要编码的文本。 返回值 URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。 说明 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

内容传送编码Base64原理

夙愿已清 提交于 2020-03-23 03:18:32
什么是Base64?   按照RFC2045的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形 式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.) 为什么要使用Base64?   在设计这个编码的时候,我想设计人员最主要考虑了3个问题:   1.是否加密?   2.加密算法复杂程度和效率    3.如何处理传输?   加密是肯定的,但是加密的目的不是让用户发送非常安全的Email。这种加密方式主要就是“防君子不防小人”。即达到一眼望去完全看不出内容即 可。基于这个目的加密算法的复杂程度和效率也就不能太大和太低。和上一个理由类似,MIME协议等用于发送Email的协议解决的是如何收发Email, 而并不是如何安全的收发Email。因此算法的复杂程度要小,效率要高,否则因为发送Email而大量占用资源,路就有点走歪了。但是,如果是基于以上两 点,那么我们使用最简单的恺撒法即可,为什么Base64看起来要比恺撒法复杂呢?这是因为在Email的传送过程中,由于历史原因,Email只被允许

多媒体技术原理与应用考试总结<一>

早过忘川 提交于 2020-03-22 14:11:23
多媒体技术原理与应用 ------------------------------2008-12-28------------------------------------------------------------------------- <一>多媒体 多媒体分类: 感觉媒体(perception medium):各种语言,音乐,自然界的各种声音,图形,图像,计算机系统中的文字,数据和文件等. 表示媒体(representation medium):语言编码,文本编码,图像编码. 表现媒体(presentation medium):输入与输出 存储媒体(storage medium):用于存放表示媒体 传输媒体(transmission medium):通信的信息载体,有双绞线,同轴电缆,光纤. 多媒体技术及其特点: 所谓多媒体技术就是计算机交互式综合处理多种媒体信息---文本,图形,图像和声音,使多种信息建立逻辑连接,集成为一个系统并具 有交互性. 简言之,多媒体技术就是计算机综合处理声,文,图信息的技术 具有集成性,实时性和交互性. 强实时性:hard realtime 高清晰度电视:HDTV 高保真音响:HiFi 多媒体:Multimedia 计算机电视:Compuvision 电视计算机:teleputer 位映射:Bitmap 窗口:window 图符:icon

小话python 中的编码转换

五迷三道 提交于 2020-03-22 07:29:14
1.前言: 一直认为自己会了,也明白了其中的知识,但是过几天不用就马上忘记了,总不能天天复习吧!还是来个好记性不如烂笔头吧! 2.编码: python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill) ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号 显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536, 注:此处说的的是最少2个字节,可能更多 UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存... 所以

Android 命名规范和编码规范

China☆狼群 提交于 2020-03-21 10:12:36
简明概要 多写注释 一、关于命名规范 对于开发项目来说肯定是要有统一的规范,然而命名规范需要做到哪几点呢?     答: 首先, 不能反人类 。 再来就是,要 望文而知其意 。 下面就来说说具体该怎么去规范我们的代码了。How to name?    1) J ava类文件     i. Activity 命名规范: 以Activity作为后缀, 例如 person Activity 。     ii. Adapter 命名规范: 以Adapter作为后缀, 例如 person Adapter 。     iii. Entity 命名规范: 大多以Entity作为后缀, 例如 person Entity 。 值得注意的是,User是全局变量,不算实体,不用这样来命名。   2) 资源文件      ①layout目录下(都用小写好么)     i. 页面布局文件 :           以act_ 为前缀,以Activity所在的Packege作为中缀, 以Activity的名称(去掉Activity)作为后缀。         如: act_ person_ addcoustomer .xml 表示在Person模块下的AddCustomerActivity对应的Layout布局文件。     ii. ListView中的item布局文件 :           以item

Python3中的bytes和str类型

两盒软妹~` 提交于 2020-03-19 18:23:40
Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分。文本总是 Unicode ,由 str 类型表示,二进制数据则由 bytes 类型表示。Python 3不会以任意隐式的方式混用 str 和 bytes ,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然)。 下面让我们深入分析一下二者的区别和联系。 编码发展的历史 在谈 bytes 和 str 之前,需要先说说关于编码是如何发展的。。 在计算机历史的早期,美国为代表的英语系国家主导了整个计算机行业,26个英文字母组成了多样的英语单词、语句、文章。因此,最早的字符编码规范是ASCII码,一种8位即1个字节的编码规范,它可以涵盖整个英语系的编码需要。 编码是什么?编码就是把一个字符用一个二进制来表示。我们都知道,所有的东西,不管是英文、中文还是符号等等,最终存储在磁盘上都是01010101这类东西。在计算机内部,读取和存储数据归根结底,处理的都是0和1组成的比特流。问题来了,人类看不懂这些比特流,如何让这些010101对人类变得可读呢?于是出现了字符编码,它是个翻译机,在计算机内部某个地方,透明的帮我们将比特流翻译成人类可以直接理解的文字。对于一般用户,不需要知道这个过程是什么原理,是怎么执行的。但是对于程序员却是个必须搞清楚的问题。 以

python学习--字符编码问题

依然范特西╮ 提交于 2020-03-19 17:23:44
计算机只能处理数字,处理文本要先把文本转换成二进制文件。8个二进制位为一个字节byte。00000000 三种字符编码格式: 1、ASCII编码:美国人发明,用 一个字节 表示所有的大小写英文字母及标点符号。 2、Unicode编码:万国码,包含大部分国家的编码。通常是 两个字节 。 3、utf-8编码:(廖老师)如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的 UTF-8 编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的 英文字母被编码成1个字节,汉字通常是3个字节 ,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。 计算机内存中使用的是Unicode编码 对单个字符,python提供了 ord() 函数获取字符的整数表示, chr() 函数把编码转换为对应的字符 print(ord('a')) #97 print(chr(97)) #a bytes类型的数据用带b的前缀表示 b'ABC' 表示三个字节 encode()字符串通过encode可以编码为指定的字节 t1='你好'

Python中使用中文

吃可爱长大的小学妹 提交于 2020-03-19 12:37:46
python的中文问题一直是困扰新手的头疼问题,这篇文章将给你详细地讲解一下这方面的知识。当然,几乎可以确定的是,在将来的版本中,python会彻底解决此问题,不用我们这么麻烦了。 先来看看python的版本: >>> import sys >>> sys.version '2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)]' (一) 用记事本创建一个文件ChineseTest.py,默认ANSI: s = "中文" print s 测试一下瞧瞧: E:/Project/Python/Test>python ChineseTest.py File "ChineseTest.py", line 1 SyntaxError: Non-ASCII character '/xd6' in file ChineseTest.py on line 1, but no encoding declared; see http://www.pytho n.org/peps/pep-0263.html for details 偷偷地把文件编码改成UTF-8: E:/Project/Python/Test>python ChineseTest.py File "ChineseTest.py", line 1