编码转换

Unicode utf8等编码类型的原理

穿精又带淫゛_ 提交于 2020-03-25 11:48:07
3 月,跳不动了?>>> 1、ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。 ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。 2、非ASCII编码 英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的。比如,在法语中,字母上方有注音符号,它就无法用ASCII码表示。于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。 但是,这里又出现了新的问题。不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样

sql 2005 数据库字段类型说明

狂风中的少年 提交于 2020-03-25 10:53:49
数据类型 类型 描 述 bit 整型 bit 数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或Fa lse 、On 或Off int 整型 int 数据类型可以存储从- 2 31 (-2147483648)到2 31 (2147483 647)之间的整数。存储到数据库的几乎所有数值型的数据都可以用这种数据类型。这种数据类型在数据库里占用4个字节 smallint 整型 smallint 数据类型可以存储从- 2 15 (-32768)到2 15 (32767)之间的整数。这种数据类型对存储一些常限定在特定范围内的数值型数据非常有用。这种数据类型在数据库里占用2 字节空间 tinyint 整型 tinyint 数据类型能存储从0到255 之间的整数。它在你只打算存储有限数目的数值时很有用。 这种数据类型在数据库中占用1 个字节 numeric 精确数值型 numeric数据类型与decimal 型相同 decimal 精确数值型 decimal 数据类型能用来存储从-10 38 -1到10 38 -1的固定精度和范围的数值型数据。使用这种数据类型时,必须指定范围和精度。 范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数 money 货币型 money 数据类型用来表示钱和货币值

ASCII,ANSI,UNICODE,UTF-8,UNICOD BIG Endian 等字符编码问题

时光总嘲笑我的痴心妄想 提交于 2020-03-25 10:00:20
3 月,跳不动了?>>> 字符集简史: 在所有字符集中,最知名可能要数被称为ASCII的7位字符集了。它是美国信息交换标准委员会(American Standards Committee for Information Interchange)的缩写, 为美国英语通信所设计。它由128个字符组成,包括大小写字母、数字0-9、标点符号、非打印字符(换行符、制表符等4个)以及控制字符(退格、响铃等) 组成。 但是,由于他是针对英语设计的,当处理带有音调标号(形如汉语的拼音)的欧洲文字时就会出现问题。因此,创建出了一些包括255个字符的由ASCII扩展 的字符集。其中有一种通常被成为IBM字符集,它把值为128-255之间的字符用于画图和画线,以及一些特殊的欧洲字符。另一种8位字符集是ISO 8859-1 Latin 1,也简称为ISO Latin-1。它把位于128-255之间的字符用于拉丁字母表中特殊语言字符的编码,也因此而得名。 欧洲语言不是地球上的唯一语言,因此亚洲和非洲语言并不能被8位字符集所支持。仅汉语(或pictograms)字母表就有80000以上个字符。但是把 汉语、日语和越南语的一些相似的字符结合起来,在不同的语言里,使不同的字符代表不同的字,这样只用2个字节就可以编码地球上几乎所有地区的文字。因此, 创建了UNICODE编码。它通过增加一个高字节对ISO Latin

《Python标准库》 目录

末鹿安然 提交于 2020-03-25 05:46:41
目录 译者序 序 前言 第1章 文本 1.1 string—文本常量和模板 1.1.1 函数 1.1.2 模板 1.1.3 高级模板 1.2 textwrap—格式化文本段落 1.2.1 示例数据 1.2.2 填充段落 1.2.3 去除现有缩进 1.2.4 结合dedent和fill 1.2.5 悬挂缩进 1.3 re—正则表达式 1.3.1 查找文本中的模式 1.3.2 编译表达式 1.3.3 多重匹配 1.3.4 模式语法 1.3.5 限制搜索 1.3.6 用组解析匹配 1.3.7 搜索选项 1.3.8 前向或后向 1.3.9 自引用表达式 1.3.10 用模式修改字符串 1.3.11 利用模式拆分 1.4 difflib—比较序列 1.4.1 比较文本体 1.4.2 无用数据 1.4.3 比较任意类型 第2章 数据结构 2.1 collections—容器数据类型 2.1.1 Counter 2.1.2 defaultdict 2.1.3 deque 2.1.4 namedtuple 2.1.5 OrderedDict 2.2 array—固定类型数据序列 2.2.1 初始化 2.2.2 处理数组 2.2.3 数组与文件 2.2.4 候选字节顺序 2.3 heapq—堆排序算法 2.3.1 示例数据 2.3.2 创建堆 2.3.3 访问堆的内容 2.3.4 堆的数据极值 2

python编码问题

南笙酒味 提交于 2020-03-24 23:52:20
SCII编码是1个字节,而Unicode编码(汉字)通常是2个字节。一个字节8位(bit) 如果统一成Unicode编码,英文字母就会占用2个字节,造成空间浪费。从而出现了utf8可变编码,utf8编码中。英文字母编码占一个字节,汉字通常3个字节。如果传输的文本汉字和英文混用,使用utf8能节省空间。 在计算机内存中使用Unicode编码,需要保存为文件或者传输就装换为utf8编码。 浏览网页的时候,服务器会把Unicode内容装换为utf8在传输到浏览器 1 Python提供了ord()和chr()函数,可以把字母和对应的ASCII码相互转换 1 >>> ord('A') 2 65 3 >>> chr(65) 4 'A' View Code 2 Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如: 1 >>> print u'中文' 2 中文 3 >>> u'中文' 4 u'\u4e2d\u6587' 5 >>> print u'\u4e2d\u6587' 6 中文 7 u''后面的内容是16进制的Unicode编码 可以看到Unicode一个汉字2个字节,u'中文'占用了4个字节 8 >>> u'中文'.encode('utf-8') 9 '\xe4\xb8\xad\xe6\x96\x87' 10 转换为utf8编码

[python之路]变量和字符编码

那年仲夏 提交于 2020-03-24 23:14:46
变量和字符编码 #变量 ##声明变量 ``` #_*_coding:utf-8_*_ name = "Tom" ``` 上述代码声明了一个变量,变量名为: name,变量name的值为:"Tom"  ##变量定义的规则: 变量名只能是 字母、数字或下划线的任意组合 变量名的第一个字符不能是数字 以下关键字不能声明为变量名 除了类名单词首字母大写其他一律小写字母,单词之间用_分割 ``` ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'] ``` _ 1、在解释器中代表交互式解释器会话中上一条执行的语句的结果。这种用法首先被标准CPython解释器采用,然后其他类型的解释器也先后采用。2、作为一个名称:这与上面一点稍微有些联系,此时作为临时性的名称使用。这样,当其他人阅读你的代码时将会知道,你分配了一个特定的名称

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编码

python 编码 存储

╄→гoц情女王★ 提交于 2020-03-24 19:30:02
setdefaultencoding --> http://www.cnblogs.com/pokerstar/diary/2017/02/16/6406062.html 在Python程序内部,通常使用的字符串为unicode编码,这样的字符串字符是一种内存编码格式,如果将这些数据存储到文件或是记录日志的时候,就需要将unicode编码的字符串转换为特定字符集的存储编码格式,比如:UTF-8、GBK等等,很多时候Python程序员都会遇到乱码问题,相信以下的一些处理方式和技巧能帮助大家解决乱码问题。 unicode到utf-8转换方法:unicodestr.encode(‘utf-8’) utf-8到unicode转换方法:utf8str.decode(‘utf-8’) 实际上,在将unicode存储到文本的过程中,还有一种存储方式,不需要将unicode转换为实际的文本存储字符集,而是将unicode的内存编码值进行存储,读取文件的时候再反向转换回来,是采用:unicode-escape的转换方式。 >>> u'中文测试'.encode('unicode-escape') '\\u4e2d\\u6587\\u6d4b\\u8bd5' >>> '\\u4e2d\\u6587\\u6d4b\\u8bd5'.decode('unicode-escape') u'\u4e2d

Python day1 变量、字符编码、用户交互程序、if、while

半世苍凉 提交于 2020-03-24 18:42:10
一、变量 1 #!/usr/bin/env python 2 # -*- utf-8 -*- 3 # Author:Wang Lulu 4 name ="Wang Lulu" #变量赋值 5 name2 = name #变量赋值可以使用变量(这里name2是指向Wanglulu的并不随着name变量的变化而变化) 6 print("Hello world") #输出格式 7 print("My name is ",name,name2) #输出格式 8 name = "Fan Shuangshuang" 9 print(name,name2) 10 GF_of_Wanglulu = "Fan Shuangshuang" 变量定义规则(1一般以下划线区分2可以下划线开头但是最多写两个3或者利用字母开头大写区分) 11 GFOfWanglulu = "Fan Shuangshuang" 12 print("I Love You",GF_of_Wanglulu) 二、字符编码 1 2 4 8 16 32 64 128 256 1 1 1 1 1 1 1 1 1 2**0 2**1 2**2 2**3 2**4 2**5 2**6 2**7 2**8 2=1+1 4=2+1+1 8=4+2+1+1 16=8+4+2+1+1 ASCII 最多只能用8位来表示(一个字节),即2**8=256

python编码和小数据池

我的梦境 提交于 2020-03-24 17:37:48
python_day_6 一. 回顾上周所有内容 一. python基础 Python是一门解释型. 弱类型语言 print("内容", "内容", end="\n") 打印语句 变量: 程序运行过程中产生的中间值. 存储在内存中.供后面的程序调用 变量的数据类型:     int, 整数 str, 字符串 bool, True,False   5. 命名规则: 由数字,字母,下划线组成 不能是纯数字或者数字开头 不能是关键字 不能太长 要有意义 不要用中文 区分大小写 推荐使用驼峰和下划线命名 input() 用户输入 if 判断 if 条件: 代码块 else: 代码块 if 条件: 代码块 elif 条件2: 代码块 .. else: 二. while循环 while 条件: 循环体 else: 代码块 流程: 判断条件是否为真. 如果真.执行循环体. 再次判断条件是否真. ....直到条件为假. 执行else. 退出循环 break 直接打断循环. continue 停止当前本次循环. 继续执行下一次循环 格式化输出: %s 字符串 %d 数字 运算符: 逻辑运算 1. and. 两端同时为真. 结果才是真. 2. or 或者. 两端有一个是真. 结果就是真 3. not 取反. () => not => and => or x or y 如果x非零, x, 否则 y 编码