字符编码

linux系统下mysql中文乱码解决

这一生的挚爱 提交于 2019-12-20 16:38:21
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 改默认编码: /etc/init.d/mysql start (stop) 为启动和停止服务器 /etc/mysql/ 主要配置文件所在位置 my.cnf /var/lib/mysql/ 放置的是数据库表文件夹,这里的mysql相当于windows下mysql的date文件夹 启动mysql后,以root登录mysql isher@isher-ubuntu:~$ mysql -u root >show variables like 'character%'; #执行编码显示 +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | |

转:Java中String与byte[]的转换

孤街浪徒 提交于 2019-12-20 09:07:08
转:Java中String与byte[]的转换 原文地址:http://blog.csdn.net/llwan/article/details/7567906 String s = "fs123fdsa";//String变量 byte b[] = s.getBytes();//String转换为byte[] String t = new String(b);//bytep[]转换为String 做JAVA经常会碰到中文乱码问题,还有各种编码的问题,特别是String类的内容需要重新编码的问题。要解决这些问题,必须了解清楚JAVA对于字符串是怎么处理的。 1. “字符”是由数字来表示的 先来重新了解一下计算机是如何处理“字符”的,这个原理是大家必须记住的,特别是在用JAVA写程序的时候,万万不可模糊。我们知道,计算机把任何东西都用数字来表示,“字符”也不例外。比如我们要显示一个阿拉伯数字“3”,在我们的PC里,其实并不是仅仅用一个数字3来代表我们要写的“3”,而是以十六进制的0x33来代表,包括放在内存或者是写到文件里,其实都是写着0x33的,不信你可以编辑一个文本文件,写一个“3”,然后用ultraEdit看他的原始码。 2. 一切“字符”都必定用数字+编码表表示。 这时候,有一个问题:为什么一定要用0x33来代表“3”呢?而不用0x43来代表呢?或者是直接用0x03来代替

MySQL设置字符集CHARACTER SET

馋奶兔 提交于 2019-12-20 00:31:48
本文地址: http://www.cnblogs.com/yhLinux/p/4036506.html 在 my.cnf 配置文件中设置相关选项,改变为相应的character set。 设置数据库编码 (sudo vi /etc/mysql/my.cnf): [client] default-character-set = utf8 [mysqld] character-set-server = utf8 collation-server = utf8_general_ci 参考资料:    14.1.4 Character Set    5.1.4 Server System Variables    10.5, “Character Set Configuration”       10.1 Character Set Support   You can specify character sets at the server, database, table, and column level.    10.1.3 Specifying Character Sets and Collations    10.1.3.1 Server Character Set and Collation   MySQL Server has a server character set

修改mysql 表的字符编码

纵饮孤独 提交于 2019-12-19 17:28:18
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在select进行中文查询的时候报了如下的错误 ERROR 1267 (HY000): Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' 查看一下表的编码 show create table t_user_friend; 发现其是latin1编码的,需将其转成utf8 命令如下 alter table t_user_friend convert to character set utf8; //alter table yds_admin_user convert to character set utf8 collate utf8_general_ci; 当然还可以设置mysql的客户端和服务器的默认编码 vi /etc/mysql/my.conf 在[mysql] 下面 添加 default-character-set=utf8 在[mysqld] 下面添加 character-set-server=utf8 collaction-server = utf8-greneral-cli 修改完后重启mysql server 来源: oschina 链接:

Python基础

二次信任 提交于 2019-12-19 14:09:12
Python的语法比较简单,采用缩进方式,写出来的代码就像下面的样子: a = int(input()) if a >= 0 : print(a) else : print(-a) 以#开头的语句是注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释。其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。 缩进有利有弊。好处是强迫你写出格式化的代码,但没有规定缩进是几个空格还是Tab。按照约定俗成的管理,应该始终坚持使用4个空格的缩进。 缩进的另一个好处是强迫你写出缩进较少的代码,你会倾向于把一段很长的代码拆分成若干函数,从而得到缩进较少的代码。 缩进的坏处就是“复制-粘贴”功能失效了,这是最坑爹的地方。当你重构代码时,粘贴过去的代码必须重新检查缩进是否正确。此外,IDE很难像格式化Java代码那样格式化Python代码。 最后,请务必注意,Python程序是大小写敏感的,如果写错了大小写,程序会报错。 小结 Python使用缩进来组织代码块,请务必遵守约定俗成的习惯,坚持使用4个空格的缩进。 在文本编辑器中,需要设置把Tab自动转换为4个空格,确保不混用Tab和空格。 数据类型 整数 有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2 a = 0xa print(a) 浮点数 科学计数法表示

哈夫曼树

孤街浪徒 提交于 2019-12-19 12:38:18
1、哈夫曼树的基本概念 ---- 哈夫曼(Huffman)树又称作最优二叉树,它是n个带权叶子结点构成的所有二叉树中,带权路径长度最小的二叉树。 ---- “路径”就是从树中的一个结点到另一个结点之间的分支构成的部分,而分支的数目就是路径长度。 ---- 树的路径长度:就是从树根到每一结点的路径长度之和。 ---- 考虑带权的结点,结点的带权路径长度为:从该结点到树根之间的路径长度与结点上权的乘积。 ---- 树的带权路径长度WPL(weighted path length):树中所有叶子结点的带权路径长度之和。 假设一个有n个带权叶子结点的二叉树,其权值为{w1,w2,....wn},每个叶子结点带权wk,每个叶子的路径长度为 lk,则从根结点 到各个叶子结点的路径长度与相应的权值的乘积之和叫做二叉树的带权路径长度,通常记作: 如下图所示是由4个叶子结点构成的三棵不同的带权二叉树: 三棵二叉树的带权路径长度为: (a)WPL=9x2+4x2+5x2+2x2=18+8+10+4=40 (b)WPL=9x1+5x2+4x3+2x3=9+10+12+6=37 (c)WPL=4x1+2x2+5x3+9x3=4+4+15+27=50 其中(b)所示的二叉树的WPL最小,此树是哈夫曼树。由上图可知:由n个带权叶子结点所构成的二叉树中,满二叉树或完全二叉树 不一定是最优二叉树

python基础:字符编码问题三个不可见的字符(0xEF 0xBB 0xBF,即BOM)

依然范特西╮ 提交于 2019-12-19 08:04:53
一、用utf-8格式保存的txt文件等,如何去掉BOM头 Windows系统的txt文件在使用utf-8编码保存时会默认在文件开头插入三个不可见的字符(0xEF 0xBB 0xBF)称为BOM头,这个BOM头在python的codecs库中已经定义为常量(codecs.BOM_UTF8) 方法一:utf8temp.txt保存时选择utf-8保存 1 import codecs 2 data=open("utf8temp.txt",'r',encoding='utf-8').read() 3 data=data.encode(encoding='utf-8') 4 print(data) 5 #print("中文".encode(encoding='utf-8')) 6 print(len(data)) 7 if data[:3]==codecs.BOM_UTF8: 8 data=data[3:] 9 print(data.decode(encoding='utf-8')) 输出如下: b'\xef\xbb\xbf\xe4\xb8\xad\xe6\x96\x87' 9 中文 方法二: 1 with open("./temp.txt","r",encoding='utf-8') as f: 2 flag=1 3 for line in f: 4 if flag==1: 5 line

BASE64编码

荒凉一梦 提交于 2019-12-18 19:49:27
参考 如何用通俗易懂的语言解释base64? Base64编码原理与应用 base64 前世今生 为什么要使用base64编码,有哪些情景需求? 早期的计算机天才们,为了表示他们国家的语言,26个英文字符,数字,还有一些特殊符号,发明了ASCII编码,如果直译英文,则是:为了信息交换而制定的一套美国标准编码。注意里面的“交换”二字。当ASCII编码问世之后,使用英文的国家爽了,往计算机里面写入信息,就是写自己国家的语言。但随着计算机的普及,其他国家也开始使用计算机,可是,有很多国家不使用英文,比如:中国、俄国、日本、韩国等,ASCII编码显然不能满足。 那怎么办?Unicode、GBK、GB2132等编码出现了。麻烦是不是又来了? 是的。 随着计算机网络的发明,到网络的普及,各国的计算机系统需要交流,此时各个计算机系统可能使用的是不同编码,那如何解决这个问题呢?在计算机里面,有一个通用的解决问题的方法:加一个中间层,Base64就是一个中间层。当我们通过网络传输中文的时候,先用Base64编码,传输到特定终端之后,再用Base64解码,这样就解决了可能出现的乱码问题。 一、BASE64算法原理 Base64编码之所以称为Base64,是因为其使用64个字符来对任意数据进行编码,同理有Base32、Base16编码。标准Base64编码使用的64个字符为: image.png

06-1 字符编码

大兔子大兔子 提交于 2019-12-18 14:56:26
文章目录 一 引入 二 知识储备 三、字符编码介绍 3.1 什么是字符编码? 3.2 字符编码表的发展史 (了解) 3.3 编码与解码 4.1 文本编辑器nodpad++存取文本文件 一 引入 ​ 字符串类型、文本文件的内容都是由字符组成的,但凡涉及到字符的存取,都需要考虑字符编码的问题。 ​ 字符编码这个知识点的典型特征就是理论多、结论少,但对于开发而言只需要记住结论即可,下面让我们来一点点介绍它 二 知识储备 ##2.1 三大核心硬件 所有软件都是运行硬件之上的,与运行软件相关的三大核心硬件为cpu、内存、硬盘,我们需要明确三点 #1、软件运行前,软件的代码及其相关数据都是存放于硬盘中的 #2、任何软件的启动都是将数据从硬盘中读入内存,然后cpu从内存中取出指令并执行 #3、软件运行过程中产生的数据最先都是存放于内存中的,若想永久保存软件产生的数据,则需要将数据由内存写入硬盘 插图:计算机三大核心硬件 ##2.2 文本编辑器读取文件内容的流程 #阶段1、启动一个文件编辑器(文本编辑器如nodepad++,pycharm,word) #阶段2、文件编辑器会将文件内容从硬盘读入内存 #阶段3、文本编辑器会将刚刚读入内存中的内容显示到屏幕上 ##2.3 python解释器执行文件的流程 以python test.py为例,执行流程如下 #阶段1、启动python解释器

字符编码(ASCII、UNICODE、UTF-8)

自闭症网瘾萝莉.ら 提交于 2019-12-18 11:23:11
转自: 字符串和编码 - 廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/1016959663602400/1017075323632896 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是 65535 ,4个字节可以表示的最大整数是 4294967295 。 由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为 ASCII 编码,比如大写字母 A 的编码是 65 ,小写字母 z 的编码是 122 。 但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了 GB2312 编码,用来把中文编进去。 你可以想得到的是,全世界有上百种语言,日本把日文编到 Shift_JIS 里,韩国把韩文编到 Euc-kr 里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。 因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里