mysql之全球化和本地化:字符集、校对集、中文编码问题
本文内容:
- 什么是字符集?什么是校对集?
- 查看字符集和校对集
- 设置字符集和校对集
- mysql中的中文数据问题
首发日期:2018-04-19
什么是字符集?什么是校对集?
- 字符集是字母和符号的集合,每一个字符编码都由字符集决定。
- 校对集是字母和符号的校对标准。校对集影响着字符的排序和搜索。
查看字符集和校对集:
- 查看mysql支持的字符集:show character set;

- 查看mysql支持的校对集:show collation;

- 查看服务端默认的字符集:show variables like 'char%';

- 查看服务端默认的字符集:show variables like 'collation%';

服务端默认的字符集的意义:

服务端默认的校对集的意义:

设置字符集和校对集
设置数据库数据表的字符集:
- 实际上,字符集很少是服务器范围(甚至数据库范围)的设置。不同的表,甚至不同的列都可能需要不同的字符集,而且两者都可以在创建表时指定【语出mysql必知必会】。下面介绍不使用默认配置来创建数据库、数据表
- 创建数据库:create database 数据库名 charset 字符集 collate 校对集;【校对集并不是必要的,每一个字符集都有默认的校对集,如果没有校对集将使用默认的】

- 创建数据表:create table 表名 charset 字符集 collate 校对集;

- 给某一列指定字符集和校对集:

设置服务端和客户端的字符集:
- 语法:set character_set_xxx =字符集; 【character_set_xxx是上面查看字符集中的服务端的各个默认字符集,意义在上面已经标上了】【这种设置是会话级的,仅在当次连接生效。】
- 如果想要永久修改服务端的字符集:windows下修改my.ini文件【就是mysql的配置文件,可以从mysql服务中查看
在哪】,在mysqld中将character-set-server的值修改为指定的字符集【修改的是服务端的字符集】
补充:
- 不可永久配置服务端认为客户端的字符集,每一个连接过来的客户端的字符集都是不确定的,应该由客户端设置当次连接的字符集来指定字符集。
mysql中的中文数据问题:
- mysql中的中文数据问题本质上还是字符集问题,想要识别和存储中文数据,必须设置能编码中文的字符集。
- gbk和utf8都是支持mysql的,一般都是将mysql的字符集更改成utf8来识别中文。
- 如何配置(以gbk为例):
- 首先要考虑的一个是:如果你使用命令行模式,默认情况下字符的编码格式是gbk的,也就是说客户端的数据编码是gbk的;
- 如果服务端要识别客户端传来的中文,那么需要设置服务端认为客户端的字符集为gbk;set character_set_client ='gbk';
- 如果服务端要返回中文给客户端,需要将服务端返回给客户端的数据的字符集设置为gbk;set character_set_results ='gbk';
- 对于单次会话,可以直接使用set names = 'gbk';【执行set names= 'gbk'就是把character_set_client、character_set_connection、character_set_results这3个参数值都设为gbk】
mysql之全球化和本地化:字符集、校对集、中文编码问题的更多相关文章
- mysql之字符集与校对集
一.字符集 1.mysql的字符集设置非常灵活 可以设置服务器默认字符集: 数据库默认字符集: 表默认字符集: 列字符集: 如果某一级别没有指定字符集,则继承上一级. 查看所有字符集语句:show c ...
- MySQL开发——【字符集、校对集】
字符集 查看MySQL中的字符集 基本语法: show character set; 查看MySQL中的默认字符集 基本语法: show variables like ‘character_set%’ ...
- mysql概要(九)字符集和校对集
1.mysql 字符集有细致设置: 2.mysql字符处理机制是:数据库和客户端之间存在一个字符集转换器(后文简称转换器)将客户端字符编码(必须告诉服务端的)转换成一种中间编码的数据(可自定义的但保证 ...
- mysql补充(1)校对集utf8_unicode_ci与utf8_general_ci
创建数据库并设置编码utf-8 多语言(补充1 2) create database mydb default character set utf8 collate utf8_general_ci; ...
- MySQL(一) -- MySQL学习路线、数据库的基础、关系型数据库、关键字说明、SQL、MySQL数据库、MySQL服务器对象、SQL的基本操作、库操作、表操作、数据操作、中文数据问题、 校对集问题、web乱码问题
1 MySQL学习路线 基础阶段:MySQL数据库的基本操作(增删改查),以及一些高级操作(视图.触发器.函数.存储过程等). 优化阶段:如何提高数据库的效率,如索引,分表等. 部署阶段:如何搭建真实 ...
- mysql字符集和校对规则(Mysql校对集)
字符集的概念大家都清楚,校对规则很多人不了解,一般数据库开发中也用不到这个概念,mysql在这方便貌似很先进,大概介绍一下简要说明 字符集和校对规则 字符集是一套符号和编码.校对规则是在字符集内用于比 ...
- mysql中的字符集和校对规则(mysql校对集)
1.简要说明介绍 字符集和校对规则 字符集是一套符号和编码.校对规则是在字符集内用于比较字符的一套规则. MySql在collation提供较强的支持,oracel在这方面没查到相应的资料. 不同字符 ...
- MySQL之字符集-校对规则
一.字符集(Character set) 是多个字符(英文字符,汉字字符,或者其他国家语言字符)的集合,字符集种类较多,每个字符集包含的字符个数不同. 特点: ①字符编码方式是用一个或多个字节表示字符 ...
- mysql字符集校对
常用的两种 utf8_general_ci 按照普通的字母顺序,而且不区分大小写(比如:a B c D)utf8_bin 按照二进制排序(比如:A排在a前面,B D a c) ci是 case ins ...
随机推荐
- [NewLife.XCode]增删改查入门
NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含 ...
- 10分钟学会使用YOLO及Opencv实现目标检测(下)|附源码
将YOLO应用于视频流对象检测 首先打开 yolo_video.py文件并插入以下代码: # import the necessary packages import numpy as np impo ...
- php安装grpc报No releases available for package解决方法
1.pecl.php.net搜索相应grpc的下载文件,这里找了个stable版本 https://pecl.php.net/get/grpc-1.17.0.tg 2.wge下载+pecl insta ...
- 跟面试官聊.NET垃圾收集,直刺面试官G点
装逼的面试官和装逼的程序员 我面试别人的时候,经常是按这种路子来面试: 看简历和面试题,从简历和面试题上找到一些技术点,然后跟应聘者聊. 聊某个技术点的时候,应聘者的回答会牵涉到其他的技术点,然后我会 ...
- SpringMVC学习(三)———— springmvc的数据校验的实现
一.什么是数据校验? 这个比较好理解,就是用来验证客户输入的数据是否合法,比如客户登录时,用户名不能为空,或者不能超出指定长度等要求,这就叫做数据校验. 数据校验分为客户端校验和服务端校验 客户端校验 ...
- PyInstaller 打包 python程序成exe
pychaim下PyInstaller 打包 python程序 主题是使用PyInstaller 打包python时遇到一些问题以及解决方案,其中将要打包的程序是用tensorflow做的LSTM算法 ...
- Perl中的hash类型
hash类型 hash类型也称为字典.关联数组.映射(map)等等,其实它们都是同一种东西:键值对.每一个Key对应一个Value. hash会将key/value散列后,按序放进hash桶.散列后的 ...
- ife 零基础学院 day 2
第二天:给自己做一个在线简历吧 最后的验证,提出了几个问题,尝试解答一下 HTML是什么,HTML5是什么 HTML的定义摘抄自w3school的HTML 简介 HTML 是用来描述网页的一种语言. ...
- spring_08aop原理及案例
*参考优质文档: https://www.cnblogs.com/xrq730/p/4919025.html 一.简介 aop(Aspect Oriented Programming)是面向切面编程, ...
- 5. CopyOnWriteArrayList 的适用场景
package com.gf.demo04; import java.util.ArrayList; import java.util.Collections; import java.util.It ...