编码转换

python_字符串转换编码值练习

拈花ヽ惹草 提交于 2020-01-28 03:17:06
字符串转编码值组合练习 for循环while循环练习,编码值和字符串之间的转换,并且体会break语句 """ 练习1:在终端中获取一个字符串,打印出每个文字的编码值. 练习2:在终端中循环录入编码值,打印每个文字. 要求:如果录入空字符串,则程序退出。 """ content = input ( "请输入:" ) for item in content : print ( ord ( item ) ) while True : value = input ( "请输入编码值:" ) if value == "" : break char = chr ( int ( value ) ) print ( char ) 来源: CSDN 作者: 李富贵︴ 链接: https://blog.csdn.net/weixin_46198526/article/details/104094933

反射机制

狂风中的少年 提交于 2020-01-27 22:14:59
概述   Java的反射机制是指程序在运行时动态获取信息以及动态调用对象方法的功能。它是一种强有力的工具,是面向抽象编程一种实现方式,它能使代码语句更加灵活,极大提高代码的运行时装配能力。   使用反射机制的意义在于:   1.反射机制极大的提高了程序的灵活性和扩展性,降低模块的耦合性,提高自身的适应能力。    2.通过反射机制可以让程序创建和控制任何类的对象,无需提前硬编码目标类。    3.使用反射机制能够在运行时构造一个类的对象,判断一个类所具有的成员变量和方法,调用一个对象的方法并生成动态代理。    4.反射机制是构建框架技术的基础所在,使用反射可以避免将代码写死在框架中。 Class类   java.lang.Class类提供了一些方法可以获取类型的信息,包括成员变量和方法等。无论是基本类型,还是引用类型,每一种类型都有一个对应的Class对象。   获取Class对象的方式有3种:   1.调用Object的getClass()方法获取Class对象。     a.该方式不适于基本类型。     b.该方式获取的Class对象的泛型类型无法确定,只能限制其范围为对象的类型或其子类类型。   2.用“.class”获取Class对象。     a.该方式适用于所有类型。     b.该方式获取的Class对象的泛型类型可以确定。   3.调用Class.forName

mysql中utf8和utf8mb4区别

那年仲夏 提交于 2020-01-27 13:37:36
mysql中utf8和utf8mb4区别 一、总结 一句话总结: 要在 Mysql 中保存 4 字节长度的 UTF-8 字符,需要使用 utf8mb4 字符集,但只有 5.5.3 版本以后的才支持(查看版本: select version();) 1、utf8mb4是什么? 4字节unicode:mb4就是most bytes 4的意思,专门用来兼容四字节的unicode:好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。 2、既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 4字节异常:mysql支持的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了 三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。也就是说,任何不在基本多文本平面的 Unicode字符,都无法使用 Mysql 的 utf8 字符集存储。包括 Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和很多不常用的汉字,以及任何新增的 Unicode 字符等等。 3、Mysql 中的 utf8 为什么只支持最长三个字节的 UTF-8字符呢?

x264阅读记录-1

*爱你&永不变心* 提交于 2020-01-26 17:41:48
x264阅读记录-1 采用x264版本是x264-snapshot-20060316-2245。 1. main函数 x264的main函数位于x264.c中,下面是main函数调用情况: (1)_setmode函数和_fileno函数 这两个函数是微软提供的两个库函数。 _setmode函数位于io.h文件中,主要作用是设置特定模式匹配的文件。http://msdn.microsoft.com/zh-cn/library/vstudio/tw4k6df8.aspx _fileno函数位于stdio.h文件中,用于获取文件流所对应的描述符。http://msdn.microsoft.com/zh-cn/library/vstudio/zs6wbdhx.aspx 下面的语句主要实现的是将Windows下默认的Text模式,按需要设置为BINARY模式, _setmode ( _fileno ( stdin ), _O_BINARY ); 还有一点,这个语句位于预编译命令中,其中涉及到一个宏 _MSC_VER。这个宏是VC编译环境的预定义宏,主要是计算为编译器的主版本号和次版本号元素。 专业数字为句点分隔的版本号的第一个元素,并且该次版本号是第二个元素。 因此,如果Visual C++编译器的版本号为15.00.20706.01,_MSC_VER 宏计算结果为1500。在 Visual

URL编码转换:escape()、encodeURI()、encodeURIComponent()

巧了我就是萌 提交于 2020-01-25 21:11:32
escape() 方法: 该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。 encodeURI() 方法: 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。 该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,# encodeURIComponent() 方法: 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。 其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处: 前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串),因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。 总结: 通过对三个函数的分析,我们可以知道:escape()除了 ASCII 字母、数字和特定的符号外

外部排序,杀鸡焉用牛刀?

北城余情 提交于 2020-01-25 17:45:27
上篇: http://www.cnblogs.com/foreach-break/p/external_sort.html 字符集和编码 字节序 I/O方式 内存 磁盘 线程/同步/异步 数据特点 字符集和编码 为什么要考虑文件的编码? 当你将文件从阿拉伯传到中国,告诉你的中国朋友要进行一个外部排序,你的中国朋友也许会傻: 上面是什么? 乱码 . 你也可以这样体验乱码: echo "数" > t.txt iconv -f UTF-8 -t UNICODE t.txt ��pe 好了,你知道了如果不知道文件的编码,你可能会解析到乱码. 字符集是什么? charset - > char-set,字符的集合.比如 UNICODE、ASCII 编码是什么? encoding,字符的表示.比如 UTF-8、ASCII 字符集和编码的关系 你晕了,我也晕了,ASCII码怎么既是字符集又是编码? 历史上,字符集和编码是同义词,实际却又不尽相同,没有一个规范地定义,那怎么理解呢? 字符集,往往强调其所“支持”的字符范围,集外的字符它不支持.集合就有一个边界,边界内的我给个表示,边界外的我不知道怎么表示。 编码,往往强调针对某个字符集的字符,我这么去转换表达为机器可理解的方式-二进制,如果对某个字符集的字符,我的转换方式和其一致,那么我既是编码也是字符集,否则我就只是一种字符集的转换格式。 那么

Protobuf 学习手册——编码篇

冷暖自知 提交于 2020-01-25 09:02:31
一、编码规范 Google 官方提供了 Protobuf 的编码规范,通过遵循这些规范,可以使 Protobuf 消息定义及其相应的类保持一致并易于阅读。 Protobuf 编码规范可能随着时间推移而发生变化,对于既有项目,应当保持编码规范的一致性,而不需盲目保持最新的编码规范。但是对于全新项目,应当遵循官方的编码规范,可以 点击这里 查阅官方最新的编码规范。 1.1 Override 一行不超过 80 个字符 两个空格缩进 1.2 文件结构 文件名采用下划线分割命名,形如: lower_snake_case.proto 。所有 .proto 文件应当遵循以下规范: License 头(如果需要的话) 文件综述 Syntax Package Imports (排好序的) File options 一切其他的东西 1.3 Package 包名应当小写,且应当对应于目录结构。例如文件位于 my/package/ 目录, 那么 package 应该是 my.package 。 对于 Java 应用,我们更习惯于使用 option java_package ,很少使用 package。 1.4 Message and field names 对于 messages,使用首字母大写的驼峰命名,例如 SongServerRequest 对于参数名,使用下划线分割命名,例如 song_name

编码,加解密,签名,Hash

情到浓时终转凉″ 提交于 2020-01-24 10:14:36
工作中会听到各种各样是是而非的词汇,base64,url,sha256,rsa,hash等等,你能很好的分清这些词语吗? 这次我想把它们统一的整理说明下: 一: 编码 编码是信息从一种形式或格式转换为另一种形式的过程,所以他们是可逆的,不能称之为加密。 下面列举几个常见的(参考 编码那些事 ): html实体编码(10进制与16进制): 如把尖括号编码[ < ] -----> html十进制: < html十六进制:< javascript的八进制跟十六进制: 如把尖括号编码[ < ] -----> js八进制:\74 js十六进制:\x3c jsunicode编码: 如把尖括号编码[ < ] ----->jsunicode:\u003c url编码 base64编码: 如把尖括号编码[ < ] -----> url: %3C base64: PA== 你可以根据他们编码后的特征来快速分辨一个看上去毫无意义的字符是由什么编码转换过来的,并试试将其转换回去,百度有一个转化工具: xss编码转换工具 如下: 编码类型 特征(以什么特征字符开头) 以“<”字符为例 html实体编码10进制 &# &#60 html实体编码16进制 &#x &#x3c javascript的八进制 \ \74 javascript的十六进制 \x \x3c jsunicode编码 \u \u003c

Java程序员们,请永远不要在MySQL中使用utf8,改用utf8mb4!

放肆的年华 提交于 2020-01-24 09:42:06
最近我遇到了一个bug,我试着通过Rails在以“utf8”编码的MariaDB中保存一个UTF-8字符串,然后出现了一个离奇的错误: Incorrect string value: ‘\xF0\x9F\x98\x83 <…’ for column ‘summary’ at row 1 我用的是UTF-8编码的客户端,服务器也是UTF-8编码的,数据库也是,就连要保存的这个字符串“ <…”也是合法的UTF-8。 问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。 MySQL一直没有修复这个bug,他们在2010年发布了一个叫作“utf8mb4”的字符集,绕过了这个问题。 当然,他们并没有对新的字符集广而告之。 MySQL的“utf8mb4”是真正的“UTF-8” MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多。 所有在使用“utf8”的MySQL和MariaDB用户都应该改用“utf8mb4”,永远都不要再使用“utf8”。 那么什么是编码?什么是UTF-8? 我们都知道,计算机使用0和1来存储文本。比如字符“C”被存成“01000011”,那么计算机在显示这个字符时需要经过两个步骤: 计算机读取“01000011”,得到数字67

第十二篇 字符编码

做~自己de王妃 提交于 2020-01-24 04:12:04
第十二篇 字符编码 # 预备知识 由于计算机语言是一组高低电平,高电平代表1,低电平代表0,计算机中的所有信息都是以二进制代码的形式存在的,无论是文字、图片、声音,还是影像、游戏...... ASCII:美国信息交换标准码(American Standard Code for Information Interchange) 类似于摩斯电码,为了让人们能看懂这些二进制代码,美国人最先制定了一种编码规则——ASCII码,用于理解二进制代码到底代表的是哪些字符,ASCII码使用指定的7个二进制位组合,这些组合所能表示的128个整数用来代表大小写字母、0到9的数字、控制字符、通信专用字符、空格符、运算符号、标点符号等的编号,通过编号可以找到一一对应的字符,ASCII码通常会额外使用一个扩充的二进制位,虽然这个二进制位可能并不代表任何意思,但是可以方便以一个字节的方式存储每个字符 在美国计算机装的英文系统上的编码表可能是ASCII码也可能是EBCDIC码,而编码格式也一定是ASCII编码格式,才能在输出文本和打开文本时不出现乱码 GBK:汉字字符集国家标准编码 ASCII码只能满足英文在计算机上通信的需要,为了扩充ASCII编码,也为了满足其他语言的通信需要,各国也都制定了各自的属于本国语言的字符编码来方便在计算机上通信,例如我国的GBK 在GBK编码体系下,有些字符使用双字节组合来表示