编码转换

python —— 编码

最后都变了- 提交于 2020-02-22 16:00:02
编码: 用来存放一位0或1,就是计算机里最小的存储单位,叫做【位】,也叫【比特】(bit)。我们决定8个比特构成一个【字节】(byte),这是计算机里最常用的单位。 1 byte = 8 bit 也就是一个字节等于8比特 编码表按照时间顺序有以下: 编码表就是计算机世界的字典 计算机是有自己的工作区的,这个工作区被称为“内存”,数据在内存当中处理时,使用的格式是Unicode,统一标准. 在python3当中,程序处理我们输入的字符串,是默认使用Unicode编码,所以输入什么语言都可以识别。 1. 数据在硬盘上存储,或者是在网络上传输,用的是UTF-8,因为节省空间 ,但我们不必操心如何转换utf-8和Unicode ,当我们点击保存的时候,程序已经“默默地”帮我们做好了编码工作。 2.一些中文的文件和中文网站 ,还在使用GBK,和GB2312。 有时候面对不同的编码的数据,我们要进行一些操作来实现转换。这里就涉及接下来要讲的【encode】(编码)和【decode】(解码)的用法。 编码:即将把人类的语言转换为计算机语言,就是【编码】 encode(); 解码:decode() print ( '吴枫' . encode ( 'utf-8' ) ) print ( '吴枫' . encode ( 'gbk' ) ) print ( b '\xe5\x90\xb4\xe6\x9e

ftp下载乱码问题

青春壹個敷衍的年華 提交于 2020-02-22 05:22:46
转载 出处:http://blog.csdn.net/u010166206/article/details/47000729 在网上Google了一些资料, FTP协议里面,规定文件名编码为 iso-8859-1 ,所以目录名或文件名需要转码。 所以网上很多人的解决方法为: 将中文的目录或文件名转为iso-8859-1编码的字符。参考代码: String name="目录名或文件名"; name=new String(name.getBytes("GBK"),"iso-8859-1"); 很多人改为上述操作后,发现上传后中文不再乱码了,就以为解决了问题 还有人处理方法为: ftpClient.setControlEncoding( "GBK"); FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT); conf.setServerLanguageCode( "zh"); 上述的处理方法,我都试过,发现在我自己搭建的FTP服务器上,上传的文件中文是正常的,不是乱码,我当时以为中文问题就解决了,在将文件上传到其他搭建的FTP服务器上时,文件中文路径仍然是乱码, 所以上述的解决方法是错误的。 上面的方法之所以错误的原因是因为是没有考虑ftp服务器的编码格式。我搭建的Ftp服务器(windows2003

那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)

a 夏天 提交于 2020-02-21 22:55:04
那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等) 来自: https://www.cnblogs.com/guogangj/p/4118605.html 之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂.写这篇文章的目的就是为了理理清这些概念,搞清楚它们的含义及关联,还有一些基本操作. SSL SSL - Secure Sockets Layer,现在应该叫"TLS",但由于习惯问题,我们还是叫"SSL"比较多.http协议默认情况下是不加密内容的,这样就很可能在内容传播的时候被别人监听到,对于安全性要求较高的场合,必须要加密,https就是带加密的http协议,而https的加密是基于SSL的,它执行的是一个比较下层的加密,也就是说,在加密前,你的服务器程序在干嘛,加密后也一样在干嘛,不用动,这个加密对用户和开发者来说都是透明的.More:[ 维基百科 ] OpenSSL - 简单地说,OpenSSL是SSL的一个实现,SSL只是一种规范.理论上来说,SSL这种规范是安全的,目前的技术水平很难破解,但SSL的实现就可能有些漏洞,如著名的"心脏出血"

LuaString库捕获和替换(标准库相关)

谁说我不能喝 提交于 2020-02-21 19:19:45
捕获(Captures) Capture3是这样一种机制:可以使用模式串的一部分匹配目标串的一部分。将你想捕获的模式用圆括号括起来,就指定了一个capture。 在 string.find 使用 captures 的时候,函数会返回捕获的值作为额外的结果。这常被用来将一个目标串拆分成多个: pair = "name = Anna" _ , _ , key , value = string . find ( pair , "(%a+)%s*=%s*(%a+)" ) print ( key , value ) -- > name Anna ‘%a+’ 表示菲空的字母序列;’%s*’ 表示 0 个或多个空白。在上面的例子中,整个模式代表:一个字母序列,后面是任意多个空白,然后是 ‘=’ 再后面是任意多个空白,然后是一个字母序列。两个字母序列都是使用圆括号括起来的子模式,当他们被匹配的时候,他们就会被捕获。当匹配发生的时候,find 函数总是先返回匹配串的索引下标(上面例子中我们存储哑元变量 _ 中),然后返回子模式匹配的捕获部分。下面的例子情况类似: date = "17/7/1990" _ , _ , d , m , y = string . find ( date , "(%d+)/(%d+)/(%d+)" ) print ( d , m , y ) -- > 17 7 1990

对MYSQL注入相关内容及部分Trick的归类小结

一世执手 提交于 2020-02-21 09:16:48
前言 最近在给学校的社团成员进行web安全方面的培训,由于在mysql注入这一块知识点挺杂的,入门容易,精通较难,网上相对比较全的资料也比较少,大多都是一个比较散的知识点,所以我打算将我在学习过程中遇到的关于的mysql注入的内容给全部罗列出来,既方便个人之后的复习,也方便后人查找相关资料。 本文部分内容可能会直接截取其他大牛的文章,截取的内容我都会进行声明处理。如有侵权,请发email联系我(asp-php#foxmail.com)删除。 本文首发于先知社区,转载需注明来源+作者ID:Yunen。 Mysql简介 在正式讲解mysql注入的内容前,我认为还是有必要说明一下什么是mysql、mysql的特点是什么等内容,这些东西看起来可能对注入毫无帮助,开始却能很好的帮助我们学习,融会贯通。 MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种 关联数据库管理系统 ,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 MySQL是 开源 的,所以你不需要支付额外的费用。 MySQL使用 标准的 SQL 数据语言 形式。 MySQL可以运行于多个系统上,并且 支持多种语言 。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel

PHP处理中文真是累啊

你。 提交于 2020-02-20 19:23:45
折腾了一天的时间,才弄出点眉目来。 做AJAX应用或Flash应用,提交中文内容到后台,涉及到编码解码(encode、decode)及编码格式的转换。 网上的PHP端escape unescape函数建议不要用,它把中英文混合时的英文过滤掉了,我是莫名其妙了N久啊,建议用unicode_urldecode这个。 再就是编码格式的转换,这主要涉及数据的存储和客户端返回,用iconv就搞定,这个函数似乎是从C++中借鉴来的。 function unicode_urldecode($url) { preg_match_all('/%u([[:alnum:]]{4})/', $url, $a); foreach ($a[1] as $uniord) { $dec = hexdec($uniord); $utf = ''; if ($dec < 128) { $utf = chr($dec); } else if ($dec < 2048) { $utf = chr(192 + (($dec - ($dec % 64)) / 64)); $utf .= chr(128 + ($dec % 64)); } else { $utf = chr(224 + (($dec - ($dec % 4096)) / 4096)); $utf .= chr(128 + ((($dec % 4096) - (

python中的f''、b''、u''、r''

不羁的心 提交于 2020-02-20 04:22:26
f/format() 格式化操作,相当于format()函数 案例如下: name = 'wy' l = f'{name}' print(l) # 打印出的l是 wy b:bytes 二进制 拓展: encode和decode也可以在二进制和字符串之间转换 u/U 表示unicode字符串 不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码。 一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u;但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码。 建议所有编码方式采用utf8 r/R 非转义的原始字符串,原意输出 相对特殊的字符,其中可能包含转义字符,反斜杠加上对应字母,表示对应的特殊含义的, 比如最常见的”\n”表示换行,”\t”表示Tab等 以r开头的字符,常用于正则表达式,对应着re模块。 来源: https://www.cnblogs.com/python-Arvin/p/11749050.html

FPGA/CPLD状态机稳定性研究

☆樱花仙子☆ 提交于 2020-02-19 19:45:33
摘要 在FPGA/CPLD设计中频繁使用的状态机,常出现一些稳定性问题,本文提出了一些解决方法,实验表明该方法有效地提高了综合效率.   随着大规模和超大规模FPGA/CPLD器件的诞生和发展,以HDL(硬件描述语言)为工具、FPGA/CPLD器件为载体的EDA技术的应用越来越广泛.从小型电子系统到大规模SOC(Systemonachip)设计,已经无处不在.在FPGA/CPLD设计中,状态机是最典型、应用最广泛的时序电路模块,如何设计一个稳定可靠的状态机是我们必须面对的问题. 1、状态机的特点和常见问题 标准状态机分为摩尔(Moore)状态机和米立(Mealy)状态机两类.Moore状态机的输出仅与当前状态值有关,且只在时钟边沿到来时才会有状态变化.Mealy状态机的输出不仅与当前状态值有关,而且与当前输入值有关,这一特点使其控制和输出更加灵活,但同时也增加了设计复杂程度.其原理如图1所示.   根据图1所示,很容易理解状态机的结构.但是为什么要使用状态机而不使用一般时序电路呢?这是因为它具有一些一般时序电路无法比拟的优点. 用VHDL描述的状态机结构分明,易读,易懂,易排错; 相对其它时序电路而言,状态机更加稳定,运行模式类似于CPU,易于实现顺序控制等. 用VHDL语言描述状态机属于一种高层次建模,结果经常出现一些出乎设计者意外的情况: 在两个状态转换时,出现过渡状态.

Python之路 - Day3 - Python基础3

微笑、不失礼 提交于 2020-02-19 09:08:37
本节内容 函数基本语法及特性 参数与局部变量 返回值 递归 匿名函数 函数式编程介绍 高阶函数 内置函数 嵌套函数 温故知新 1. 集合 主要作用: 去重 关系测试, 交集\并集\差集\对称差集 >>> a={1,2,3,4} >>> b={3,4,5,6} >>> a {1, 2, 3, 4} >>> type(a) <class 'set'> >>> a.symmetric_difference(b) {1, 2, 5, 6} >>> b.symmetric_difference(a) {1, 2, 5, 6} >>> a.difference(b) {1, 2} >>> a.union(b) {1, 2, 3, 4, 5, 6} >>> a.issubset(b) False >>> a.issuperset(b) False >>> c={1,1,2,2,3,3} >>> c {1, 2, 3} 3. 字典 键值对 key-value pair 特性: 无顺序 去重 查询速度快,比列表快多了 比list占用内存多 为什么会查询速度快呢?因为它是hash类型的,那什么是hash呢? 哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母

在VC中,如何修改文件的只读属性设置

跟風遠走 提交于 2020-02-19 01:49:34
static char BASED_CODE szFilter[] = "*.ppt"; CFileDialog FileDlg(TRUE,"PPT",NULL,OFN_FILEMUSTEXIST|OFN_NONETWORKBUTTON |OFN_PATHMUSTEXIST,szFilter); FileDlg.DoModal(); // To get the selected file's path and name CString strFileName; strFileName = FileDlg.GetPathName(); //-------------------将只读文件的只读属性去掉----------------------- CFileStatus rStatus; CFile::GetStatus(strFileName,rStatus);//获得文件的属性设置 rStatus.m_attribute=rStatus.m_attribute & 0x3E ; //如果文件为只读的,将只读属性去掉 //-------------------------------------------- CFile::SetStatus(strFileName, rStatus );//更改文件的属性设置 …… } enum Attribute { normal = 0x00