字符编码

python之文件读写

瘦欲@ 提交于 2020-02-04 04:06:25
本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一、I/O操作概述 I/O在计算机中是指Input/Output,也就是Stream(流)的输入和输出。这里的输入和输出是相对于内存来说的,Input Stream(输入流)是指数据从外(磁盘、网络)流进内存,Output Stream是数据从内存流出到外面(磁盘、网络)。程序运行时,数据都是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方(通常是磁盘、网络操作)就需要IO接口。 那么这个IO接口是由谁提供呢?高级编程语言中的IO操作是如何实现的呢? 操作系统是个通用的软件程序,其通用目的如下: 硬件驱动 进程管理 内存管理 网络管理 安全管理 I/O管理 操作系统屏蔽了底层硬件,向上提供通用接口。因此,操作I/O的能力是由操作系统的提供的,每一种编程语言都会把操作系统提供的低级C接口封装起来供开发者使用,Python也不例外。 二、文件读写实现原理与操作步骤 1. 文件读写实现原理 文件读写就是一种常见的IO操作。那么根据上面的描述,可以推断python也应该封装操作系统的底层接口,直接提供了文件读写相关的操作方法。事实上,也确实如此,而且Java、PHP等其他语言也是。 那么我们要操作的对象是什么呢

MySQL 语句正确,运行出错

半城伤御伤魂 提交于 2020-02-04 03:17:32
查看mysql数据编码 登录 MySQL 服务,查看mysql数据库默认的编码 mysql> show variables like 'character%'; +--------------------------+-------------------------------------------------+ | Variable_name | Value | +--------------------------+-------------------------------------------------+ | character_set_client | gbk | | character_set_connection | gbk | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | gbk | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | E:\0Develop\mysql-5.7.15-winx64\share\charsets\ | +-----------------------

Python之文件读写

允我心安 提交于 2020-02-03 10:41:56
本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一、I/O操作概述 I/O在计算机中是指Input/Output,也就是Stream(流)的输入和输出。这里的输入和输出是相对于内存来说的,Input Stream(输入流)是指数据从外(磁盘、网络)流进内存,Output Stream是数据从内存流出到外面(磁盘、网络)。程序运行时,数据都是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方(通常是磁盘、网络操作)就需要IO接口。 那么这个IO接口是由谁提供呢?高级编程语言中的IO操作是如何实现的呢? 操作系统是个通用的软件程序,其通用目的如下: 硬件驱动 进程管理 内存管理 网络管理 安全管理 I/O管理 操作系统屏蔽了底层硬件,向上提供通用接口。因此,操作I/O的能力是由操作系统的提供的,每一种编程语言都会把操作系统提供的低级C接口封装起来供开发者使用,Python也不例外。 二、文件读写实现原理与操作步骤 1. 文件读写实现原理 文件读写就是一种常见的IO操作。那么根据上面的描述,可以推断python也应该封装操作系统的底层接口,直接提供了文件读写相关的操作方法。事实上,也确实如此,而且Java、PHP等其他语言也是。 那么我们要操作的对象是什么呢

字符编码

跟風遠走 提交于 2020-02-03 10:04:00
转载 https://www.cnblogs.com/hukey/p/9647291.html 1.编码: ascii码: 不支持 中文 .python2使用的编码是 支持,英文,数字,符号 8位一个字节 gbk编码 国标: 支持: 中文,英文,数字,符号 英文16位 中文16位 unicode 万国码 支持:中文,英文,数字,符号 英文 32位,四个字节 中文 32位,四个字节 utf -8长度可变,的万国码最少用8位, python3使用的编码 英文 8位 一个字符 中文 24位 三个字节 python3中程序运行阶段使用的是uniconde码,显示的内容是bytes类型 传输和存储使用的byes pycharm 存储使用的是utf8 1.编码. 汉字,一个汉字utf-8是3个字节 举例: s = "中" bs = s.encode("utf-8") print(bs) b'\xe4\xb8\xad gbk,英文编码是ascii原样输出,汉字,一个汉字gbk是2个字节 s = "alex" bs = s.encode("gbk") print(bs) b'alex' 2.解码,用什么编的码,就要用什么来解码 举例:都使用utf-8来,腾讯qq微信发的其实都是这些码,然后进行解码 编码: s = "old广坤" bs = s.encode("utf-8") print(bs)

导入wordpress数据库到mysql报错

我的梦境 提交于 2020-02-01 09:31:23
mysql字符集编码错误的导入数据会提示错误了,这个和插入数据一样如果保存的数据与mysql编码不一样那么肯定会出现导入乱码或插入数据丢失的问题,下面我们一起来看一个例子。 恢复数据库报错:由于字符集问题,最原始的数据库默认编码是latin1,新备份的数据库的编码是utf8,因此导致恢复错误。 [root@hk byrd]# /usr/local/mysql/bin/mysql -uroot -p'admin' t4x < /tmp/11x-B-2014-06-18.sql ERROR 1064 (42000) at line 292: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''[caption id=\"attachment_271\" align=\"aligncenter\" width=\"300\"]<a href=\"ht' at line 1 修复方法(未实测): [root@Test ~]# /usr/local/mysql/bin/mysql -uroot -p'admin' --default-character-set=latin1

Java 字符集,编码、解码

半世苍凉 提交于 2020-02-01 02:59:59
1、 计算机中文件、数据底层都是基于二进制的。 计算机底层并没有文本文件、图片文件之分,它只是记录着每个文件的二进制序列。 字符集:包含着字符和二进制序列之间的对应关系,一个字符对应一个二进制序列。 编码(Encode):把人能看懂的明文转换为计算机能理解二进制序列。 解码(Decode):把计算机中的二进制序列转换为人能看懂的明文。 乱码:解码方式与编码方式不同,即编码、解码使用的字符集不一致。 Windows中文本文件的默认字符集是GBK。 2、 字节的文件输出流可以指定写入模式: FileOutputStream fos=new FileOutputStream(String/File file); FileOutputStream fos=new FileOutputStream(String/File file,boolean b); //第二个参数指定是否是追加模式,true——追加,false——覆盖。 字符的文件流可以指定字符集: FileWriter fw=new FileWriter(String/File file);FileReader fr=new FileReader(String/File file); //指定字符集FileWriter fw=new FileWriter(String/File file, String/Charset

字符编码与转码

风流意气都作罢 提交于 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字符集 : |--拉丁码表

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