编码转换

python编码问题和逻辑运算

心已入冬 提交于 2019-12-17 10:46:22
1,回顾昨天课程及作业 1 #1.使用while循环输入 1 2 3 4 5 6 8 9 10 2 3 ''' 4 count = 0 5 while count < 10: 6   count += 1 # count = count +1 7   if count == 7: 8      print(' ') 9   else: 10     print(count) 11 #第二方法 12 13 count = 0 14 while count < 10: 15   count += 1 # count = count +1 16   if count == 7: 17     continue 18     print(count) 19 20 ''' 21 #3、输出 1-100 内的所有奇数 22 #方法一: 23 # count = 1 24 # while count < 101: 25 # print(count) 26 # count += 2 27 #方法二: 28 # count = 1 29 # while count < 101: 30 # if count % 2 == 1: 31 # print(count) 32 # count += 1 33 34 #5、求1-2+3-4+5 ... 99的所有数的和 35 # sum = 0 36 #

ASCII、Unicode和UTF-8

烂漫一生 提交于 2019-12-17 09:26:17
转自廖雪峰的官方网站:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819196283586a37629844456ca7e5a7faa9b94ee8000 字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是 65535 ,4个字节可以表示的最大整数是 4294967295 。 由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为 ASCII 编码,比如大写字母 A 的编码是 65 ,小写字母 z 的编码是 122 。 但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了 GB2312 编码,用来把中文编进去。 你可以想得到的是,全世界有上百种语言,日本把日文编到 Shift_JIS 里

Redis源码之--有序集合t_zset

情到浓时终转凉″ 提交于 2019-12-17 02:05:28
今天来剖析一个比较有意思的数据类型—— 有序集合zset,说实话,它的源码真的是多,而且繁琐,不过,其中的一部分在Redis源码剖析–跳跃表zskiplist中分析过了。有序集合到底是什么呢?有序集合里面存放的元素都自带一个分值,根据这个分值来对元素进行排序,从而使其成为一个有序的集合。接下来,枯燥的Read Code时间到了。 Zset数据结构 有序集合zset是由RedisObject来管理,当Object结构中的type字段为OBJ_ZSET,且编码字段为OBJ_ENCODING_ZIPLIST或OBJ_ENCODING_SKIPLIST。这样才能被称为是一个有序集合对象。 /* RedisObject结构 */ typedef struct redisObject { unsigned type:4; // OBJ_ZSET表示有序集合对象 unsigned encoding:4; // 编码字段为OBJ_ENCODING_ZIPLIST或OBJ_ENCODING_SKIPLIST unsigned lru:LRU_BITS; // LRU_BITS为24位 int refcount; void *ptr; // 指向数据部分 } robj; 通常涉及到两种编码结构时,都会在特定情况下,对底层数据结构进行转换,以达到效率和内存占用的平衡。zset规定了两个阈值如下:

字符集、编码

和自甴很熟 提交于 2019-12-17 01:07:59
  说到编码,你会想到什么?你想到的可能是gb2312、gbk、utf-8、unicode、ansi、ascii,你还会想到项目中常常碰到的汉字乱码问题,编辑器里面的汉字便乱码了?浏览器便乱码了?怎么回事?是不是一通捣鼓之后又不乱了,下次碰到的时候,有是一通捣鼓?还会想到什么?java代码点?windows代码页?好多软件有unicode版本?unicode版本是怎么回事?多语言版本?国际化?。。。   一提到编码,想必这些概念会在你脑子里乱窜。该是理清一下的时候了! 字符集 字符长度(位) 说明 ASCII 7 0-127,0x20 ASCII扩展字符集 8 128-255 GB2312 8+8 (0xA1-->0xFE)(0xa1-->0xFE) ,全角(双字节版的ASCII)、半角(同ASCII) GBK 8+8 (0x80-->0xFE)(0x40-->0xFE),GB2312的扩展 GB18030 8+8 GBK的扩展,增加了新字符 UCS( UNICODE) 8+8 GBK 与UNICODE不兼容 UTF-8、UTF-16 UCS Transfer Format,可以按照一定规则和UCS互相转换 ISO-8859-1 文件的编码:    http://en.wikipedia.org/wiki/Byte_order_mark 参考的文章: http://zh

字符,字节和编码, ASCII码, DBCS码,SBCS码 与Unicode码

让人想犯罪 __ 提交于 2019-12-16 14:39:51
http://www.regexlab.com/zh/encoding.htm 1. 编码问题的由来,相关概念的理解 1.1 字符与编码的发展 从计算机对多国语言的支持角度看,大致可以分为三个阶段:   系统内码 说明 系统 阶段一 ASCII 计算机刚开始只支持英语,其它语言不能够在计算机上存储和显示。 英文 DOS 阶段二 ANSI编码 (本地化) 为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。 不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码 。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。 不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码 的文本中。 中文 DOS,中文 Windows 95/98,日文 Windows 95/98 阶段三 UNICODE (国际化) 为了使国际间信息交流更加方便,国际组织制定了 UNICODE 字符集 ,为各种语言中的每一个字符设定了统一并且唯一的数字编号

Python基础二

戏子无情 提交于 2019-12-16 13:50:15
一. 格式化输出 现有一练习需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式 ------------ info of 太白金星 ----------- Name : 太白金星 Age : 22 job : Teacher Hobbie: girl ------------- end ----------------- 你怎么实现呢?你会发现,用字符拼接的方式还难实现这种格式的输出,所以一起来学一下新姿势 只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系就好啦 name = input("Name:") age = input("Age:") job = input("Job:") hobbie = input("Hobbie:") info = ''' ------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name Name : %s #代表 name Age : %s #代表 age job : %s #代表 job Hobbie: %s #代表 hobbie ------------- end ----------------- ''' %(name,name,age,job

字符串和数字之间的转换(Unicode)

旧城冷巷雨未停 提交于 2019-12-16 13:09:43
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1 Unicode编码的字符串转换为数字类型 CString str; str = _T("1234"); int i = _ttoi(str); float f = _tstof(str); 2 数字转换为wchar_t wchar_t c[10]; int num = 100; _itow_s(num,c,10,10进制); wstring str(c); 3 wstring 转换为int wstring str; _wtoi(str.c_str); 那么究竟什么是Unicode?如何编程呢? UNICODE环境设置 在安装Visual Studio时,在选择VC++时需要加入unicode选项,保证相关的库文件可以拷贝到system32下。 UNICODE编译设置: C/C++, Preprocessor difinitions 去除_MBCS,加_UNICODE,UNICODE 在ProjectSetting/link/output 中设置Entry为wWinMainCRTStartup 反之为MBCS(ANSI)编译。 Unicode :宽字节字符集 1. 如何取得一个既包含单字节字符又包含双字节字符的字符串的字符个数? 可以调用Microsoft Visual C++的运行期库包含函数

pikachu平台之xss漏洞

不想你离开。 提交于 2019-12-16 11:01:43
反射型xss(get) 原理 传递的参数直接存在页面代码中,而且没有过滤 流程 打开页面 发现有长度限制,F12进行修改 。 输入特殊字符,检查是否有过滤 发现并没有过滤,而且直接在页面代码中了 存在xss漏洞,尝试输入 <script>alert(xss)</script> ,发现有长度限制,用F12修改后。 反射型xss(post) xss(post)攻击的基本原理 方便起见,都用本地了 攻击者 127.0 .0 .1 受害者 127.0 .0 .1 漏洞服务器 127.0 .0 .1 先尝试登陆,默认admin/123456 接下来修改post.html,诱使被攻击者点击链接,访问该页面,进而触发自动提交表单,获取其cookie。 诱使被攻击者点击链接 http://192.168.171.129/pikachu/pkxss/xcookie/post.html 当被攻击者点击之后,其cookie等信息自动提交到接受服务器。 攻击成功! 存储型xss 原理: 存储型XSS和反射型XSS形成的原因是一样的,不同的是存储型XSS下攻击者的可以将脚本注入到后台存储起来,构成更加持久的危害 我们在pikachu尝试留言 发现可能存在存储型xss漏洞 输入 <script>alert("xss")</script> 提交之后 发现有存储型xss漏洞,刷新就会弹出,攻击成功! XSS案例

Redis学习 数据结构

牧云@^-^@ 提交于 2019-12-16 10:12:25
本文参考了 Redis源码3.0分支 和《Redis设计与实现》。 对象 Redis基于下面提到的底层数据结构创建了一个对象系统,这个系统包括 String 、 List 、 Set 、 Hash 、 Sorted Set 这五种对象,每种对象都用到了至少一种底层数据结构。Redis中的每个对象都由一个 redisObject 结构表示,该结构中和保存数据有关的三个属性分别是 type 、 encoding 和 ptr 。 /* Object types */ #define REDIS_STRING 0 #define REDIS_LIST 1 #define REDIS_SET 2 #define REDIS_ZSET 3 #define REDIS_HASH 4 /* Objects encoding. Some kind of objects like Strings and Hashes can be * internally represented in multiple ways. The 'encoding' field of the object * is set to one of this fields for this object. */ #define REDIS_ENCODING_RAW 0 /* Raw representation */

PNG图片压缩原理

怎甘沉沦 提交于 2019-12-16 03:00:40
PNG图片压缩原理 png的图片我们每天都在用,可是png到底是什么,它的压缩原理是什么?很好,接下来我将会给大家一一阐述。 什么是PNG? PNG的全称叫做便携式网络图型(Portable Network Graphics)是目前最流行的网络传输和展示的图片格式,原因有如下几点: 无损压缩 :PNG图片采取了基于LZ77派生算法对文件进行压缩,使得它压缩比率更高,生成的文件体积更小,并且不损失数据。 体积小 :它利用特殊的编码方法标记重复出现的数据,使得同样格式的图片体积更小。网络通讯中因受宽带制约,在保证图片清晰、逼真的前提下,优先选择PNG格式的图片。 支持透明效果 :PNG支持对原图像定义256个透明层次,使得图像的边缘能与任何背景平滑融合,这种功能是GIF和JPEG没有的。 PNG类型 PNG图片主要有三个类型,分别为PNG 8/PNG 24/PNG 32。 PNG8 :PNG 8中的8,其实指的是 8bits 相当于用2^8(2的8次方)大小来存储一张图片的颜色种类,2的8次方等于256,也就是说PNG 8能存储256种颜色,一张图如果颜色种类很少,将它设置成PNG 8的图片类型是非常合适的。 PNG24 :PNG 24中的24,相当于3乘以8等于24,就是用三个8bits分别取表示R(红)、G(绿)、B(蓝)。R(0-255),G(0-255)、B(0-255)