编码转换

字符编码与转码

风流意气都作罢 提交于 2020-02-01 02:25:13
需知 在python2默认编码是ASCII, python3里默认是unicode 在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string 转换原则 所有的编码都需要unicode作为中介来转换 utf-8转换程gb2312 首先通过解码【decode】转换成unicode编码 其次通过编码【encode】转换成gb2312编码 gb2312转换程utf-8 首先通过解码【decode】转换成unicode编码 其次通过编码【encode】转换成utf-8编码 实战(python3) import sys , time print ( '系统默认\t' , sys . getdefaultencoding ( ) ) #系统默认编码 str = '庆余年很好看哈' #字符串的编码是unicode str_utf8 = str . encode ( 'utf-8' ) str_gb2312 = str_utf8 . decode ( 'utf-8' ) . encode ( 'gb2312' ) #通过unicode转换 str_gbk = str . encode ( 'gbk' ) print ( 'unicode\t' , str ) print ( 'utf-8\t' , str_utf8 )

Java基础教程——转换流

随声附和 提交于 2020-02-01 02:11:12
转换流 通常,Window默认的编码方式是GBK,Java项目一般建议设为UTF-8编码。这时候读取文件可能出现乱码。事实上实际应用中编码格式不匹配的场景非常多。 转换流可以指定编码方式,用于解决乱码问题。 OutputStreamWriter InputStreamReader 字符编码:Character Encoding:自然语言的字符,与二进制数之间的对应规则。 文件流读取时使用的编码方式和文件本身编码方式不同时,会造成读取出来时出现乱码。 字符集 :Charset:系统支持的所有字符的集合,包括数字、文字、标点符号、图形符号等。一套字符集至少有一套字符编码。常见字符集有ASCII字符集、GBK字符集、Unicode字符集等。 ASCII字符集 : |--ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,用于显示现代英语,主要包括控制字符(回车键、退格、换行键等)和可显示字符(英文大小写字符、阿拉伯数字和西文符号)。 |--|--基本的ASCII字符集,使用7位(bits)表示一个字符,共128字符。 |--|--ASCII的扩展字符集使用8位(bits)表示一个字符,共256字符,方便支持欧洲常用字符。 ISO-8859-1字符集 : |--拉丁码表

python2.7编码与解码

前提是你 提交于 2020-02-01 01:13:41
常见的编码   ASCII: 美国人发明的,只编码英文字母和符号,1个字节。   GB2312: 中国人发明的,增加了中文汉字和符号,2个字节。   Unicode: 为了把所有语言都统一到一套编码里,一般是2个字节,生僻字4个字节。   UTF-8: 为了节省英文字符内存空间,UTF-8可变长编码,常用的英文字母被编码成1个字节,汉字通常是3个字节,生僻的字符编码成4-6个字节。 1 >>> S = '中文' 2 >>> print type(S), len(S) 3 <type 'str'> 4 4 5 >>> unicodeS = u'中文' 6 >>> print type(unicodeS), len(unicodeS) 7 <type 'unicode'> 2 8 9 >>> utfS = u'中文'.encode('utf-8') 10 >>> print type(utfS), len(utfS) 11 <type 'str'> 6   在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码,这样可以节省很多存储空间。    其中,python2和python3系统默认编码分别是ascii和utf-8,以python2.7为例: 1 >>> import sys 2 >>> sys.getdefaultencoding

ANSI, UNICODE,UTF8编码的区别

蓝咒 提交于 2020-02-01 01:11:29
本地化过程中涉及到源文件和目标文件的传输问题,这时候编码就显得很重要。中文的网页和操作系统中通常采用ANSI编码,这也是微软OS的一个字符标准。对于ANSI,不同的国家和地区制定了不同的标准,由此产生了GB2312(简体中文),BIG5(繁体中文),JIS(日文)等各自的编码标准。但不同的ANSI编码在不同语言之间是不兼容的,所以对于不同的操作系统之间文件的传输,或者在同样的操作系统下,源文件语言不同于OS的语言文件的传输, 需要转换成UT8格式 。 具体区别: ANSI:16384 个字符。这就是 ANSI 字符标准。英文一个字节,中文两个字节 UNICODE: 使用两个字节对世界上几乎所有的语言进行编码 ( 0x0000 - 0xFFFF ), 65536 个字符 ,每种语言的代码段不 同, 两个字节 ( 英文、中文都是两个字节 ) 所表达的字符是唯一的,所以不同语种可以共存于文本中, 解决国际化的问题 UTF8 是 Unicode 一种压缩形式 ,英文 A 在 unicode 中表示为 0x0041 ,老外觉得这种存储方式太浪费,因为浪费了 50% 的空间, 于是就把英文压缩成 1 个字节, 成了 utf8 编码, 但是汉字在 utf8 中占 3 个字节,显然用做中文不如 ansi 合算 ,这就是中国的网页用作 ansi 编码而老外的网页常用 utf8 的原因。 在英文OS中

Java学习34:字符串

倾然丶 夕夏残阳落幕 提交于 2020-02-01 00:10:43
从这一章开始,会有几篇文章介绍Java核心类。我自己也是一名大二在校生,在写这些文章的时候也参考了很多的书籍,但是依旧会有总结的不到位的地方。望指教,也可以私信我互相交流学习过程。 很多地方如有雷同,望留言我加以修改。 老规矩,升级从打怪开始。我们还是创建一个新项目,首先关闭原先的项目,然后点击new project,名字为FifthDemo,并且在src目录中创建包,名为com.fifth.strings。并创建我们的第一个java文件Demo01.java String 还记得我们在最开始介绍的数据类型吗,那还记得String是什么类型吗? 在Java中,编译器对String有特殊照顾,可以用"…"来表示一个字符串。 String s1="Hello!" 实际上字符串在String内部是通过一个char[]数组来表示的,因此还有一种写法: String s2 = new String(new char[] {'H', 'e', 'l', 'l', 'o', '!'}); 但是因为String太常用了,所以我们一般都习惯于第一种写法; Java字符串的一个重要特点就是字符串不可变。这种不可变性是通过内部的private final char[]字段,以及没有任何修改char[]的方法实现的。 我们来看一个例子: public class Demo01 { public

Python-05-编码规范 PEP8

巧了我就是萌 提交于 2020-01-31 21:07:27
  这篇文档说明了Python主要发行版中标准库代码所遵守的规范。很多项目都有自己的一套风格指南。若和本指南有任何冲突,应该优先考虑其项目相关的那套指南。 文章目录 代码布局(Code Lay-Out) 缩进(Indentation) 每行最大长度(Maximum Line Length) 二元运算符之前还是之后换行?(Should a line break before or after a binary operator?) 空行(Blank Line) 源文件编码(Source File Encoding) 模块引用(Imports) 模块级的双下划线命名(Module level dunder names) 字符串引用(String Quotes) 表达式和语句中的空格(Whitespace In Expressions And Statements) 一些痛点(Pet Peeves) 其他建议(Other Recommendations) 何时在末尾加逗号(When to use trailing commas) 注释(Comments) 块注释(Block Comments) 行内注释(Inline Comments) 文档字符串(Documentation Strings) 命名约定(Naming Conventions) 首要原则(Overriding

python中编码问题

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-31 16:26:22
写在前面: 本文是很基础的东西,这些基础的东西有一个特点,看一遍会了,但其中很多精髓其实被忽略了,建议你货比三家,细细品尝编码之美。还有,这文章是我熬夜写的,可能有错,请批判性阅读,谢谢。 0x00:为社么会出现多种编码? 相信计算机专业的都知道,所有的数据(文本,音频,视频等等)在计算机内部都是以二进制形式来表示的。而计算机内部为什么采用二进制则是由硬件决定的(计算机采用了具有两种稳定状态的二值电路)。这样,就引出一个问题: 我们人类不适合直接看二进制。 因此,需要用一种方法,将二进制转为我们能看懂的东西。 编码就应运而生了。 0x01:编码发展历史 第一阶段: 在计算机中,所有的数据只可能是0或者1(用高电平和低电平分别表示1和0),那么我们通常看到的字符也就只能用0和1来表示呀。于是科学家们(这里指的是美国的科学家)就想出一个办法,把一个特定的数字对应一个特定的字母进行存储和传输,比如我需要存储字母a,那么我存入一个数字97(即在计算机中存入二进制(01100001),这个过程叫做编码(encode),而我们在读取数据的时候,当遇到97时,我们就让计算机显示字母a,这个过程叫做解码(decode)。 这里你应该知道: 计算机看懂的东西我们看不懂,我们看懂的东西,计算机看不懂。 把计算机看懂的东西(二进制(01100001))变成我们看懂的东西(数字97,也就是a)

关于Content-Type中application/x-www-form-urlencoded 和 multipart/form-data的区别及用法

蹲街弑〆低调 提交于 2020-01-31 05:00:08
一、表单 在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型。 例如: application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。 multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分,这个一般文件上传时用。 text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。 二、Form表单语法 在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型。 例如: application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。 multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分,这个一般文件上传时用。 text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。 补充 三、常用的编码方式 form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x-www

1. 爬虫初体验

限于喜欢 提交于 2020-01-31 04:19:43
1. 爬虫初体验 步骤 体验爬虫 requests.get() Response对象的常用属性 爬虫伦理 步骤 第0步:获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 第1步:解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 第2步:提取数据。爬虫程序再从中提取出我们需要的数据。 第3步:储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这就是爬虫的工作原理啦,无论之后的学习内容怎样变化,其核心都是爬虫原理。 下面,我们快速浏览一下整个关卡的学习大纲。大纲展示了我们将如何逐步学习和掌握爬虫这项技能,了解即可。 体验爬虫 这一部分的任务就是学会爬虫的第0步:获取数据。 我们将会利用一个强大的库——requests来获取数据。 在学习系统里,已经帮你预装好requests库。如果你希望在电脑上安装,方法是:在Mac电脑里打开终端软件(terminal),输入pip3 install requests,然后点击enter即可;Windows电脑里叫命令提示符(cmd),输入pip install requests 即可。 requests库可以帮我们下载网页源代码、文本、图片,甚至是音频。其实,“下载”本质上是向服务器发送请求并得到响应。 先来看requests.get()方法。 requests.get() requests

一千行 MySQL 学习笔记

风流意气都作罢 提交于 2020-01-30 13:44:25
原文: 一千行 MySQL 学习笔记 基本操作 /* Windows服务 */ -- 启动MySQL net start mysql -- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格) /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 SHOW PROCESSLIST -- 显示哪些线程正在运行 SHOW VARIABLES -- 显示系统变量信息 数据库操作 /* 数据库操作 */ ------------------ -- 查看当前数据库 SELECT DATABASE(); -- 显示当前时间、用户名、数据库版本 SELECT now(), user(), version(); -- 创建库 CREATE DATABASE[ IF NOT EXISTS] 数据库名 数据库选项 数据库选项: CHARACTER SET charset_name COLLATE collation_name -- 查看已有库 SHOW DATABASES[ LIKE 'PATTERN'] -- 查看当前库信息 SHOW CREATE DATABASE 数据库名 -- 修改库的选项信息 ALTER DATABASE 库名 选项信息 -- 删除库 DROP