当前位置: 首页 > wzjs >正文

无需域名网站建设南阳网站优化公司

无需域名网站建设,南阳网站优化公司,做区块链在哪个网站,网站建设中翻译一.常用字符编码 1.ASCII编码 用一个字节表示一个字符 2.ANSI编码 每个国家为了显示本国的语言而对ASCII码进行了拓展 用两个字节表示一个汉字,中国的ANSI编码是GB2312编码(简体),日本的ANSI编码是JIS编码,台湾的A…

一.常用字符编码

1.ASCII编码

用一个字节表示一个字符

2.ANSI编码

每个国家为了显示本国的语言而对ASCII码进行了拓展

用两个字节表示一个汉字,中国的ANSI编码是GB2312编码(简体),日本的ANSI编码是JIS编码,台湾的ANSI编码是BIG5编码(繁体)

3.GBK编码

对GB2312进行的扩展,用来显示罕见的、古汉语的汉字。

4.Unicode编码

用四字节表示一个字符

5.UTF-8编码

国际通用字符库,涵盖了地球上人类的所有的语言文字

可以识别字符,如果字符是简单的字母,就用一字节存储,如果是复杂的生僻字,就用四字节存储

utf8不支持表情符号emoji,utf8mb4支持表情符号emoji

二.字符编码全局设置

1.原因

用户在向网站服务端进行数据信息存储时,由于数据库服务系统默认的字符编码设置问题,可能会导致出现字符乱码,为了能更准确地识别数据库中的中文字符信息,需要对数据库服务配置文件中的默认字符编码设置进行调整

2.显示所有可用的字符集

show charset;

3.查询 MySQL 中所有包含“char”关键字的系统变量(通常是与字符集和字符编码相关的系统变量)

show variables like '%char%';

注意这些是否是一样的

4.在/etc目录将数据库服务配置文件进行备份

cp my.cnf my.cnf.bak

5.修改配置文件

vim /etc/my.cnf

在[mysqld]区域写入

character-set-server=gbk

6.重启以重新加载配置文件

 systemctl restart mysqld

7.再次查看

show variables like '%char%';

8.查看新创建的数据库的字符集

show databases;
create database yong65535;
show create database yong65535;

9.编辑修改客户配置文件参数信息

client.cnf是客户端配置文件信息

vim /etc/my.cnf

在[client]区域内写入

default-character-set=gbk

10.重启和查看

systemctl restart mysqld
show variables like '%char%';

show variables like 'character_set_%';

11.最后修改回去

vim /etc/my.cnf

三.字符编码局部设置

1.指定某一数据库的字符集

在创建库时指定字符集就行了

如创建qwq数据库,指定字符集为gbk

create database qwq charset gbk;

查看该数据库信息

show create database qwq;

2.指定数据库中某一个表的字符集

在创建表时指定字符集就可以了

先进入qwq数据库

use qwq;

3.查看新创建的表优先使用默认全局的字符集还是优先使用这一数据库的字符集

创建t1表,该表有表项id,数据类型为int

create table t1(id int);
查t1表信息

show create table t1;
 

由此可见优先继承的是数据库的字符集

4.创建t2表,该表有表项id类型为int,且指定使用的字符集为utf8mb4;

create table t2(id int) charset utf8mb4;

查看表t2内容
show create table t2;

四.参数信息、解释说明及其关系图

1.参数信息及其解释说明

character_set_client:用来设置客户端默认使用的字符集

character_set_connection:用来设置连接数据库时默认的字符集

character_set_database:用来设置创建数据库默认的编码格式

character_set_filesystem:文件系统的编码格式,把操作系统上的文件名转化成此字符集,即把character_set_client转换character_set_filesystem,默认binary是不做任何转换

character_set_results:数据库给客户端返回时默认使用的编码格式

character_set_server:服务器安装时指定的默认编码格式,这个变量建议由系统管理,不要认为定义

character_set_system:数据库系统使用的编码格式,这个值一直是utf8,不需要设置,它是存储系统元数据的编码格式

character_sets_dir:这个变量是字符集安装的目录

2.关系图

举例说明:

SET character_set_client = gbk;
SET character_set_connection = utf8mb4;
SET character_set_results = latin1;

内部操作字符集=utf8mb4

过程:

客户端字符串(中文) 
   --用gbk编码--> 字节流(gbk)
       ↓
服务器用character_set_client=gbk解码成字符
       ↓
服务器用character_set_connection=utf8mb4编码字符用于SQL执行
       ↓
插入时转为表字符集utf8mb4编码写入磁盘
       ↓
查询时从磁盘取utf8mb4字节流
       ↓
转成字符序列
       ↓
根据character_set_results=latin1编码成latin1字节流返回客户端
       ↓
客户端用latin1解码成字符显示

3.注意事项

客户端字符集设置要和服务器对应,避免字符集不匹配导致乱码,一般建议客户端、连接、结果、表字段都统一用utf8mb4,以减少字符集转换复杂度和乱码风险

五.编码排序(校对)规则

根据设置的排序规则不同,查询信息时,影像数据信息的查询输出和排序效果

1.所有已用的字符排序规则

 show collation;

2.排序规则后缀及其解释

后缀含义及解释
_ciCase Insensitive(不区分大小写)
字符比较时忽略大小写,‘a’与‘A’视为相同。是最常用的后缀。
_csCase Sensitive(区分大小写)
字符比较时区分大小写,‘a’和‘A’被视为不同字符。
_binBinary(二进制)
按照字符的二进制值(ASCII码或Unicode码)逐字节比较,区分大小写且不考虑语言规则。速度快,精确比较。
_aiAccent Insensitive(不区分重音符号)
忽略字符的重音符号(例如é和e视为相同),通常和ci结合使用,如utf8mb4_0900_ai_ci
_asAccent Sensitive(区分重音符号)
区分带重音符号和不带重音符号的字符。
0900代表使用Unicode Collation Algorithm版本 9.0.0的排序规则。
比如utf8mb4_0900_ai_ci,这是MySQL 8.0及以后版本引入的新排序规则,支持更准确的Unicode排序。

3.对库设置校对规则

在创建数据库时指定

create database qoq charset utf8 collate utf8_general_mysql500_ci;

查看这个数据库信息

show create database qoq;

4.对表设置校对规则

create table t1 (id int) charset utf8 collate utf8_german2_ci;

5.演示校对规则不同的效果

创建三个表,有表项info,char(3)类型,utf8mb4编码,排序规则各不相同

区分大小写

CREATE TABLE t3 (info CHAR(3)) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

不区分大小写

CREATE TABLE t4 (info CHAR(3)) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs;

ascii码存储

CREATE TABLE t5 (info CHAR(3)) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

向三个表插入相同的数据

insert into t3 values('a'),('A'),('b'),('B'),('c'),('C');

insert into t4 values('a'),('A'),('b'),('B'),('c'),('C');

insert into t5 values('a'),('A'),('b'),('B'),('c'),('C');

查询数据信息

select * from t3 where info='a';

select * from t4 where info='a';

select * from t5 where info='a';

排序处理

select * from t3 order by info;

select * from t4 order by info;

select * from t5 order by info;

校对规则还会影响数据排序结果,因此也成为排序规则

六.修改数据库的字符集

1.直接转换,此方法只会影响之后存储的数据,不会修改之前存储的数据

查看当前的字符集

show create table t1;

修改成utf8mb4,之后再次查看

alter table t1 charset utf8mb4;

show create table t1;

2.间接修改

锁表逻辑(别让用户再写数据了)导出数据(例如:mysqldump),重新创建数据空表(设定目标字符集),导入备份数据信息

可以影响之后存储的数据,也可以影响之前的数据

注意必须保证修改之后的数据字符集是之前字符集的超集

http://www.dtcms.com/wzjs/187823.html

相关文章:

  • 做网站的群石家庄百度推广优化排名
  • 怎样看网站是谁做的镇江网页设计
  • 苏州网站建设自助建站模板婚恋网站排名
  • icp备案查看网站内容吗泉州百度网络推广
  • 怎么制作网站平台电话全球网站流量排名查询
  • 贵州网站建设服务平台保定seo博客
  • 一般网站做推广要多大的带宽和内存产品销售方案与营销策略
  • 西柳网站建设怎么注册自己的网站域名
  • 网站备案密码上海seo公司哪个靠谱
  • 兰州市网站建设微信朋友圈广告30元 1000次
  • 任何人任意做网站销售产品违法吗免费搭建自己的网站
  • 网站建设福州今日特大新闻新事
  • 现在c 做网站用什么体育新闻最新消息
  • 台湾宜兰县政府建设局网站网站排名大全
  • 网站js修改代码品牌推广的三个阶段
  • 网站后台管理布局软文公司代写
  • 知名网站开发网站推广的常用方法有哪些?
  • 网站开发数据库有关合同seo综合查询接口
  • 齐齐哈尔市网站建设廊坊seo排名
  • 17做网店一样的网站校园推广
  • 镜像wordpress博客网站排名优化专业定制
  • 做设计的网站定制湖北网站设计
  • 自己有服务器怎么建设网站抖音竞价推广怎么做
  • 网络建设公司起名谷歌优化排名怎么做
  • 广宗企业做网站浙江网站推广公司
  • 免费做祝福网站阿里云搜索引擎入口
  • 淘宝开店需要多少钱seo规则
  • 注册公司需要什么流程seo网站分析
  • 如何制作钓鱼网站南京百度seo排名
  • 北京摇号网站维护手机搜索引擎排行榜