字符编码

用Python开发MySQL增强半同步BinlogServer(T1基础篇)

瘦欲@ 提交于 2019-12-23 11:27:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 导读 : 作者:曾永伟,知数堂10期学员,多年JAVA物流行业开发管理经验和PHP/Python跨境电商开发管理经验,对数据库系统情有独钟,善于运用SQL编程简化业务逻辑,去年开始正式从业MySQL DBA, 专注于DB系统自动化运维、MySQL云上实践。 本文为python-mysql-binlogserver系列的第一篇(T1基础篇) 概述 前不久知数堂吴老师在公开课上把MHA拉下神坛,是因为MHA无法从根本上解决丢数据的可能性,只是尝试性的去补偿未同步的数据。使用MySQL的半同步复制可以解决数据丢失的问题,但原生 io_thread 会破坏掉Master上的Binlog File的命名,对后继的运维造成不便,所以使用原生增强半同步+blackhole引擎做binlog备份的方案几乎没有人使用,而更多的公司则使用mysqlbinlog命令来实现轻量的BinlogServer,不足的是官方mysqlbinlog并不支持半同步复制,仍然会丢数据。 据我所知,Facebook,Google和国内的美团公司都有研发自己的BinlogServer,但是目前我没有找到一个开源的支持半同步的BinlogServer项目,于是就诞生了 py-mysql-binlogserver 这个项目。 1、主要特性如下:

字符集编码

拜拜、爱过 提交于 2019-12-23 02:05:28
Unicode编码 最初的unicode编码是固定长度的,16位,也就是2两个字节代表一个字符,这样一共可以表示65536个字符。显然,这样要表示各种语言中所有的字符是远远不够的。Unicode4.0规范考虑到了这种情况,定义了一组附加字符编码,附加字符编码采用2个16位来表示,这样最多可以定义1048576个附加字符。所以4个字节表示一个字符。 Unicode只是一个编码规范,目前实际实现的unicode编码有:UTF-8,UTF-16等。utf-8是考虑了字符是怎么存储在计算机上。 UTF-8 utf-8是一种可变长的编码方式,使用1~6个字节表示一个符号,根据不同的符号调整字节数量。 //ascii字符 1个字节 // byte[] bytes = "a".getBytes("utf-8"); // System.out.println(bytes.length); //1 //希腊文2个字节 // byte[] bytes = "α".getBytes("utf-8"); // System.out.println(bytes.length); //2 //中文3个字节 // byte[] bytes = "中".getBytes("utf-8"); // System.out.println(bytes.length); //3 //中文4个字节(ckj中韩日扩展表意字符

Vim 字符编码

 ̄綄美尐妖づ 提交于 2019-12-23 01:39:51
vim 编码方式的设置 转载:http://www.cnblogs.com/freewater/archive/2011/08/26/2154602.html 和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括UCS-2、UTF-8 等流行的 Unicode 编码方式。然而不幸的是,和很多来自 Linux 世界的软件一样,这需要你自己动手设置。 Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names),它们的意义如下: * encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。默认是根据你的locale选择.用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在.vimrc 中改变它的值才有意义。你可以用另外一种编码来编辑和保存文件,如你的vim的encoding为utf-8,所编辑的文件采用cp936编码,vim会 自动将读入的文件转成utf-8(vim的能读懂的方式),而当你写入文件时,又会自动转回成cp936(文件的保存编码). * fileencoding: Vim 中当前编辑的文件的字符编码方式

ASCII码对照表 包含二进制、十进制、十六进制

倖福魔咒の 提交于 2019-12-23 00:57:01
 ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。   ASCII第一次以规范标准的型态发表是在1967年,最后一次更新则是在1986年,至今为止共定义了128个字符,其中33个字符无法显示(这是以现今操作系统为依归,但在DOS模式下可显示出一些诸如笑脸、扑克牌花式等8-bit符号),且这33个字符多数都已是陈废的控制字符,控制字符的用途主要是用来操控已经处理过的文字,在33个字符之外的是95个可显示的字符,包含用键盘敲下空白键所产生的空白字符也算1个可显示字符(显示为空白)。 ASCII控制字符 二进制 十进制 十六进制 缩写 可以显示的表示法 名称/意义 0000 0000 0 00 NUL ␀ 空字符(Null) 0000 0001 1 01 SOH ␁ 标题开始 0000 0010 2 02 STX ␂ 本文开始 0000 0011 3 03 ETX ␃ 本文结束 0000 0100 4 04 EOT ␄ 传输结束 0000 0101 5 05 ENQ ␅ 请求 0000 0110 6 06 ACK ␆ 确认回应 0000 0111 7

Linux入门基础二

♀尐吖头ヾ 提交于 2019-12-22 17:04:23
Linux基础入门二 文章目录 Linux基础入门二 1.1字符集和编码 1.1.1 ASCII码 1.1.2 Unicode 1.2命令别名 1.3命令格式 1.4 基础命令 1.4.1 时间与日期 1.4.2 关机和重启 1.4.3用户登录信息查看命令 1.4.4文本编辑 1.4.5输出信息 1.5命令行扩展和被括起来的集合 1.6 tab键补全 1.6.1命令补全 1.6.2路径补全 1.6.3双击Tab键 1.1字符集和编码 字符集(Charset) :是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。 字符编码(Character Encoding) :是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对。即在符号集合与数字系统之间建立对应关系,它是信息处理的一项基本技术。通常人们用符号集合(一般情况下就是文字)来表达信息。而以计算机为基础的信息处理系统则是利用元件(硬件)不同状态的组合来存储和处理信息的。元件不同状态的组合能代表数字系统的数字,因此字符编码就是将符号转换为计算机可以接受的数字系统的数,称为数字代码。 常见字符集名称 :ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等

几种常见的编码方式

穿精又带淫゛_ 提交于 2019-12-22 01:56:45
为什么要编码   首先必须知道计算机是如何表示我们人类能够理解的符号的。这些符号也就是我们人类所使用的语言,由于人类语言太多,表示这些语言的符号太多,无法用计算机中一个基本的存储单元——字节(byte)来表示,因而必须要经过拆分或一些翻译工作,才能让计算机理解我们的语言。 我们可以把计算机能够理解的语言假定为英语,其他语言要能够在计算机中使用,必须的经过一次翻译,把它翻译成英语。这个翻译的过程就是编码。 所以编码的原因可以总结为以下几条。 在计算机中存储信息的最小单元是一个字节,即8个bit,所以能够表示的字符范围是 0~255个。 人类要表示的符号太多,无法用一个字节来完全表示。   要解决这个矛盾,必须要有一个新的数据结构char ,而从 char 到 byte 必须编码。 如何翻译   各种语言需要交流,经过翻译是必要的,那又如何来翻译呢?在计算机中提供了多种翻译方式,常见的有 ASCII、ISO-88591、GB23112、GBK、UTF-8、UTF-8、UTF-16等。它们都可以被看作字典,,它们规定了转换的规则,按照这个规则就可以让计算机正确地表示我们的字符。 在选择编码格式来存储汉字时,一般要考虑是存储空间还是编码的效率重要。 ASCII 码 ASCII 码总共有128个,用1个字节的低七位表示,0~31 是控制字符如换行、回车、删除等,32~126 是打印字符

文本文件和二进制文件的区别

会有一股神秘感。 提交于 2019-12-22 00:38:46
文本文件: 文本文件是一种计算机文件,它是一种典型的顺序文件,其文件的逻辑结构又属于流式文件。 特别的是,文本文件是指以ASCII码方式(也称文本方式)存储的文件,更确切地说,英文、数字等字符存储的是ASCII码,而汉字存储的是机内码。文本文件中除了存储文件有效字符信息(包括能用ASCII码字符表示的回车、换行等信息)外,不能存储其他任何信息。 文本文件是一种由若干行字符构成的 计算机文件 。文本文件存在于计算机文件系统中。通常,通过在文本文件最后一行后放置文件结束标志来指明文件的结束。 文本文件是指一种容器,而纯文本是指一种内容。文本文件可以包含纯文本。 一般来说,计算机文件可以分为两类:文本文件和 二进制文件 。[2] 格式 ASCII ASCII 标准使得 文件 只含有ASCII字符的文本文件可以在 Unix 、 Macintosh 、 Microsoft Windows 、 DOS 和其它 操作系统 之间自由交互,而其它格式的文件是很难做到这一点的。但是,在这些操作系统中,换行符并不相同,处理非ASCII字符的方式也不一致。 MIME 文本文件在MIME标准中的类型为“text/plain”,此外,它通常还附加编码的信息。在Mac OS X出现前,当Resource fork指定某一个文件的类型为“TEXT”时,Mac OS就认为这个文件是文本文件。在Windows中

url参数中出现+、空格、=、%、&、#等字符的解决办法

落花浮王杯 提交于 2019-12-21 10:40:39
package com.zhicall.media.util; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.apache.commons.codec.binary.Base64; public class Base64Image { public static void main(String[] args) { // 测试从Base64编码转换为图片文件 String strImg = "post过来的base64图片编码"; //tomcat下 使用base64上传 会将+变成空格,所以转图片前要进行转换 strImg = strImg.replaceAll(" ", "+"); GenerateImage(strImg, "D:\\wangyc.jpg"); // 测试从图片文件转换为Base64编码 //System.out.println(GetImageStr("d:\\wangyc.jpg")); } /* public static String GetImageStr(String

SecureCRT/PUTTY中使用VIM中文乱码问题

非 Y 不嫁゛ 提交于 2019-12-21 00:00:41
如果使用SSH终端SecureCRT (PUTTY也一样)程序连接linux服务器,对于服务器返回的中文字符默认情况会显示乱码,解决方法很简单,打开会话选项对话框,找到外观,把字符编码改成你服务器上使用的编码方式即可,一般为UTF-8。 不过,我这里遇到了点问题是关于一个UTF-8的文档,使用cat可以正常显示中文,使用vim打开却显示为乱码,看来肯定是vim的问题了。 经过查找和尝试,设置一下vim的内部编码格式得到解决: 设置后: 另,转一篇关于vim编码的文章 原文: http://edyfox.codecarver.org/html/vim_fileencodings_detection.html 在 Vim 中, 有四个与编码有关的选项, 它们是: fileencodings 、 fileencoding 、 encoding 和 termencoding 。 在实际使用中, 任何一个选项出现错误, 都会导致出现乱码。 因此, 每一个 Vim 用户都应该明确这四个选项的含义。 下面, 我们详细介绍一下这四个选项的含义和作用。 1 encoding encoding 是 Vim 内部使用的字符编码方式。 当我们设置了 encoding 之后, Vim 内部所有的 buffer、 寄存器、 脚本中的字符串等, 全都使用这个编码。 Vim 在工作的时候,

mysql乱码问题

▼魔方 西西 提交于 2019-12-20 19:47:13
原文链接 mysql数据库的字符集 直白的说,字符就像是单个的文字,编码就像是给每个文字的编号,字符集就像是字符与编码的集合,校验规则就是字符集的对应的排序规则,字符集加上对应的校验规则就是语言。(每种字符集可以有多种校对规则,但都有一个默认的校对规则) mysql数据库可以通过设定字符集,来使用对应的字符集和检验规则来组织字符。就像是解读一片文章的时候用那种语言来解析。例如:中国人常使用的utf8编码,代表的是中文。 mysql可以支持多种字符集。在同一个数据库的不同表,同一个表中的不同字段,都可以指定使用不同的字符集。 mysql的字符集规则 mysql可以设定的字符集: 服务器的字符集 数据库的字符集 表的字符集 字段的字符集 如果在某一个级别没有设置字符集,则它会继承其上一级的字符集。 mysql数据库乱码问题解决方法(即修改字符集方法) 【1】查看mysql支持的字符集 show character set; 【2】查看数据库编码 show variables like ‘character_set%’; 【3】查看当前mysql使用的字符集 show variables like ‘character%’; 解析: character_set_client:客户端请求数据的字符集 character_set_connection:客户机与服务器连接的字符集