mysql特殊编码_Mysql 字符编码
知识补充:数据库字符编码
一、MySQL支持的字符集
1.查看所有可用的字符集
show character set;
或者查看information_schema.character_sets,也可以显示所有的字符集和该字符集默认的校队规则
2.MySQL的字符集包括字符集(character)和校对规则(collation)两个概念。
1)字符集用来定义MySQL存储字符串的方式
2)校对规则用来定义 字符串比较的方式
3)字符集和校对规则是一对多的关系,一个字符集有多个校对规则供你选择!
校对规则命名约定:它们以相关的字符集名开始,通常包括一个语言名,并且以
_ci(忽略大小写)、
_cs(大小写敏感)或者
_bin(二元,即比较是基于字符编码的值而与language无关)结束。
查看字符集的校对规则:
show collation like '字符集前缀%';
二、MySQL内部的字符集和校对规则设置
1.服务器字符集和校对规则设置
暂时了解一下即可
2.数据库字符集和校对规则设置
CREATE DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
查看当前数据库的字符集和校对规则:
show variables like 'character_set_database';
show variables like 'collation_database';
ALTER DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
3.表字符集和校对规则设置
CREATE TABLE tbl_name (column_list)
[DEFAULT CHARACTER SET charset_name [COLLATE collation_name]]
ALTER TABLE tbl_name
[DEFAULT CHARACTER SET charset_name] [COLLATE collation_name]
4.字段(列)字符集和校对规则
遇到这种情况概率比较小,这只是MySQL提供给我们一个灵活设置的手段
三、MySQL连接字符集设置
过程中要设置正确,诚实守信,这样子如果全部设置正常,服务器端会自动的去按照你设置的字符集转换,但是也要避免想换转换的过程,最好都设置成一样的编码!
连接字符集设置:客户端和服务器之间交互的字符集
1.对于客户端和服务器段的交互操作,MySQL提供了3个不同的参数:
1)character_set_client:客户端来源数据使用的字符集
2)character_set_connection:连接层字符集
3)character_set_results:返回结果字符集
知识拓展:数据在客户端和服务器之间交互的过程中字符集转换的大概过程
1) MySQL Server收到请求时将请求数据从character_set_client转换为character_set_connection;
2) 进行内部操作前将请求数据从character_set_connection转换为内部操作字符集,内部操作字符集的确定方法如下:
1>使用每个数据字段设定的字符集;
2>若上述值不存在,则使用对应数据表设定的字符集;
3>若上述值不存在,则使用对应数据库设定的字符集;
4>若上述值不存在,则使用服务器设定的字符集。
3) 将操作结果从内部操作字符集转换为character_set_results。
这3个参数设定的字符集应该相同,并且客户端使用的字符集确实是参数character_set_client的值,才可以确保用户的数据可以正确的返回且输出。
查看当前设置:show variables like 'character_set%';
修改:
set names 字符集,可以同时修改3个参数的值,对本次有效
也可以在配置文件中设置:
[mysql]
default-character-set=字符集
修改CMD命令行字符集:
chcp 65001 #换成utf-8代码页(设置为utf-8之后最好手动修改显示字体 )
chcp 936 #换成默认的gbk
客户端使用字符,连接层使用的字符集,内部使用的字符集,返回使用的字符集,最好都设置层一样的,并且客户端使用的字符集确实是character_set_client参数的值,这样就绝对不会出现问题!
mysql特殊编码_Mysql 字符编码相关推荐
- mysql查看编码_mysql 字符编码的查看与修改
修改数据库字符集: 代码如下: ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...]; 把表默认的字符集和 ...
- mysql代表单个字符_mysql字符编码以及字符序
1.数据库中有关编码格式的配置 查看数据库有关编码格式的配置 mysql> show variables like 'char%'; +--------------------------+-- ...
- Mysql中各种与字符编码集(character_set)有关的变量含义
mysql涉及到各种字符集,在此做一个总结. 字符集的设置是通过环境变量来设置的,环境变量和linux中的环境变量是一个意思.mysql的环境变量分为两种:session和global.session ...
- 给mysql数据库设计编码_MYSQL数据库编码原理
很多站长可能与织梦CMS小编一样,觉得MYSQL数据库即熟悉又神秘.熟悉是因为我们每天都会用到MYSQL进行安装织梦程序,陌生是因为mysql经常与linux联系,是基于linux系统的下的应用,而我 ...
- MySQL 中出现的字符编码错误 Incorrect string value: ‘\x\x\x\x‘ for column ‘x‘
活动地址:CSDN21天学习挑战赛 问题出现的场景: 在MySQL中插入数据时使用中文,数据库就会报错,诸如: Incorrect string value: '\x\x\x\x' for colum ...
- MySQL设置数据库的字符编码为utf8
查看数据库编码: 如果不做任何设置的话,默认是 latin1 show create database test; 设置数据库的字符编码为utf8 alter database test DEFAUL ...
- mysql efbbbf_字符集与字符编码
什么是ANSI字符集? 这个不是固定字符集,如果在中文简体windows中,它代码字符集是gb2312,在繁体值代表是big5等等. 为什么英文字符不会出现乱码? 常见ascii码字符集是:128字符 ...
- ansi编码_Java 字符编码
点击上方蓝字关注我们! 作者介绍 王云静,Java 开发工程师,2018 年 7 月加入去哪儿网,目前在目的地 - 呼叫中心.曾获得过 ACM 亚洲区域赛铜牌. ----- 基本概念 字符集 字符(C ...
- unix系统编码 java_JAVA字符编码系列三:Java应用中的编码问题
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...
最新文章
- linux 权限 x 表示,在Linux系统中,用户对目录拥有“x”权限,表示可以执行下列哪种操作?...
- phantomjs 抓取html,javascript – 如何使用PhantomJS获取网站的HTML源代码
- js(Dom+Bom)第七天(1)
- 【PMP学习笔记】:三、项目经理角色
- javascript 西瓜一期 03 机器语言与高级语言
- k8s部署jar包_K8S部署SpringBoot应用_都超的博客-CSDN博客_k8s springboot
- redis rdb aof区别_干货|Redis的RDB和AOF
- python使用-python使用
- Android 编程下 Using ViewPager for Screen Slides
- 完整的python项目实例-python完整项目
- android音频切换到蓝牙耳机,在Android上将音频路由到蓝牙耳机(非A2DP)
- nginx 日志格式打印
- 室内定位导航地图制作问题
- [Android 4.4.4] 泛泰A870 通过刷第三版 Mokee4.4.4 KTU84P 20140626 RC2.1 by syhost
- 如何实现打开网页自动弹出QQ对话框
- imx6ul gpio中断接收(代码)
- 分享如何在 PingCode 这类专业的看板软件中管理敏捷Kanban 项目
- 千里之行,始于足下--致2013-2014上半年总结
- 关于电视机中DTV码流对android的Timer的影响
- 【55种开源数据可视化工具简介】