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

史志网站建设必要性新建站点步骤

史志网站建设必要性,新建站点步骤,网店网站设计论文,高唐做网站推广修改字符集 修改步骤 在MySQL8.0版本之前#xff0c;默认字符集为1atin1,utf8字符集指向的是utf8mb3。网站开发人员在数据库设计的时候往往会将编码修改为ut8字符集。如果遗忘修改默认的编码#xff0c;就会出现乱码的问题。从MySQL8.0开始#xff0c;数据库的默认编码将改…修改字符集 修改步骤 在MySQL8.0版本之前默认字符集为1atin1,utf8字符集指向的是utf8mb3。网站开发人员在数据库设计的时候往往会将编码修改为ut8字符集。如果遗忘修改默认的编码就会出现乱码的问题。从MySQL8.0开始数据库的默认编码将改为utf8b4,从而避免上述乱码的问题。 查看默认字符集 show variables like character% # or show variables like %char%修改默认字符集 修改my.cnf文件,配置character_set_serverutf8 重启mysql服务:systemctl restart mysqld 注意: 只对修改之后生成库表起作用,不会影响原来已经存在的表库 修改已经存在的表的字符集 修改已创建数据库的字符集 alter database 数据库名称 character set utf8;修改已创建数据表的字符集 alter table t_emp convert to character set utf8;注意: 和默认字符集相似,原有的数据如果是用非’utf8’编码的话数据本身编码不会发生改变。已有数据需要导出或删除然后重新插入。 各级别的字符集 MySQL有4个级别的字符集和比较规则分别是 服务器级别数据库级别表级别列级别 执行如下SQL语句 show variables like character%;character_set_server服务器级别的字符集character_set_database当前数据库的字符集character_set_client服务器解码请求时使用的字符集character_set_connection服务器处理请求时会把请求字符串从character_set_client转为character_set_connectioncharacter_set_results服务器向客户端返回数据时使用的字符集 服务器级别 character_set_server 服务器级别的字符集。 我们可以在启动服务器程序时通过启动选项或者在服务器程序运行过程中使用 SET 语句修改这两个变量的值。比如我们可以在配置文件中这样写 [server] # 默认字符集 character_set_servergbk #对应的默认的比较规则 collation_servergbk_chinese_ci 当服务器启动的时候读取这个配置文件后这两个系统变量的值便修改了。 数据库级别 character_set_database 当前数据库的字符集 我们在创建和修改数据库的时候可以指定该数据库的字符集和比较规则具体语法如下 CREATE DATABASE 数据库名 [[DEFAULT] CHARACTER SET 字符集名称] [[DEFAULT] COLLATE 比较规则名称]; ALTER DATABASE 数据库名 [[DEFAULT] CHARACTER SET 字符集名称] [[DEFAULT] COLLATE 比较规则名称];表级别 我们也可以在创建和修改表的时候指定表的字符集和比较规则语法如下 CREATE TABLE 表名 (列的信息)[[DEFAULT] CHARACTER SET 字符集名称] [COLLATE 比较规则名称]] ALTER TABLE 表名[[DEFAULT] CHARACTER SET 字符集名称] [COLLATE 比较规则名称]如果创建和修改表的语句中没有指明字符集和比较规则将使用该表所在数据库的字符集和比较规则作为该表的字符集和比较规则。 列级别 对于存储字符串的列同一个表中的不同的列也可以有不同的字符集和比较规则。我们在创建和修改列定义的时候可以指定该列的字符集和比较规则语法如下 CREATE TABLE 表名(列名 字符串类型 [CHARACTER SET 字符集名称] [COLLATE 比较规则名称], 其他列... ); ALTER TABLE 表名 MODIFY 列名 字符串类型 [CHARACTER SET 字符集名称] [COLLATE 比较规则名称];对于某个列来说如果在创建和修改的语句中没有指明字符集和比较规则将使用该列所在表的字符集和比较规则作为该列的字符集和比较规则。 提示 在转换列的字符集时需要注意如果转换前列中存储的数据不能用转换后的字符集进行表示会发生错误。比方说原先列使用的字符集是utf8列中存储了一些汉字现在把列的字符集转换为ascii的话就会出错因为ascii字符集并不能表示汉字字符。 字符集与比较规则 utf8 与 utf8mb4 utf8 字符集表示一个字符需要使用14个字节但是我们常用的一些字符使用13个字节就可以表示了。而字符集表示一个字符所用的最大字节长度在某些方面会影响系统的存储和性能所以设计MySQL的设计者偷偷的定义了两个概念 utf8mb3 阉割过的 utf8 字符集只使用13个字节表示字符。utf8mb4 正宗的 utf8 字符集使用14个字节表示字符。 比较规则 上表中MySQL版本一共支持41种字符集其中的 Default collation 列表示这种字符集中一种默认的比较规则里面包含着该比较规则主要作用于哪种语言比如 utf8_polish_ci 表示以波兰语的规则比较 utf8_spanish_ci 是以西班牙语的规则比较 utf8_general_ci 是一种通用的比较规则。 后缀表示该比较规则是否区分语言中的重音、大小写。具体如下 后缀英文解释描述_aiaccent insensitive不区分重音_asaccent sensitive区分重音_cicase insensitive不区分大小写_cscase sensitive区分大小写_binbinary以二进制方式比较 最后一列 Maxlen 它代表该种字符集表示一个字符最多需要几个字节。 常用操作1 #查看GBK字符集的比较规则 SHOW COLLATION LIKE gbk%; #查看UTF-8字符集的比较规则 SHOW COLLATION LIKE utf8%; #查看服务器的字符集和比较规则 SHOW VARIABLES LIKE %_server; #查看数据库的字符集和比较规则 SHOW VARIABLES LIKE %_database; #查看具体数据库的字符集 SHOW CREATE DATABASE dbtest1; #修改具体数据库的字符集 ALTER DATABASE dbtest1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;常用操作2 #查看服务器的字符集和比较规则 SHOW VARIABLES LIKE %_server; #查看数据库的字符集和比较规则 SHOW VARIABLES LIKE %_database; #查看具体数据库的字符集 SHOW CREATE DATABASE dbtest1; #修改具体数据库的字符集 ALTER DATABASE dbtest1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;常用操作3 #查看表的字符集 show create table employees; #查看表的比较规则 show table status from atguigudb like employees; #修改表的字符集和比较规则 ALTER TABLE emp1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;请求到响应过程中字符集的变化 系统变量描述character_set_client服务器解码请求时使用的字符集character_set_connection服务器处理请求时会把请求字符串从character_set_client 转为 character_set_connectioncharacter_set_results服务器向客户端返回数据时使用的字符集 请求从发送到结果返回过程中字符集的变化 客户端发送请求所使用的字符集 一般情况下客户端所使用的字符集和当前操作系统一致不同操作系统使用的字符集可能不一样如下 类 Unix 系统使用的是 utf8Windows 使用的是 gbk 当客户端使用的是 utf8 字符集字符 ‘我’ 在发送给服务器的请求中的字节形式就是 0xE68891 提示 如果你使用的是可视化工具比如navicat之类的这些工具可能会使用自定义的字符集来编 码发送到服务器的字符串而不采用操作系统默认的字符集所以在学习的时候还是尽量用 命令行窗口。 服务器接收到客户端发送来的请求其实是一串二进制的字节它会认为这串字节采用的字符集是 character_set_client 然后把这串字节转换为 character_set_connection 字符集编码的字符。 由于我的计算机上 character_set_client 的值是 utf8 首先会按照 utf8 字符集对字节串 0xE68891 进行解码得到的字符串就是 ‘我’ 然后按照 character_set_connection 代表的 字符集也就是 gbk 进行编码得到的结果就是字节串 0xCED2 。 因为表 t 的列 col 采用的是 gbk 字符集与 character_set_connection 一致所以直接到列中找字节值为 0xCED2 的记录最后找到了一条记录。 提示 如果某个列使用的字符集和character_set_connection代表的字符集不一致的话还需要进行一次字符集转换。 上一步骤找到的记录中的 col 列其实是一个字节串 0xCED2 col 列是采用 gbk 进行编码的所以首先会将这个字节串使用 gbk 进行解码得到字符串 ‘我’ 然后再把这个字符串使用character_set_results 代表的字符集也就是 utf8 进行编码得到了新的字节串 0xE68891 然后发送给客户端。 由于客户端是用的字符集是 utf8 所以可以顺利的将 0xE68891 解释成字符 我 从而显示到我们的显示器上所以我们人类也读懂了返回的结果。
http://www.hkea.cn/news/14536999/

相关文章:

  • 台州专业网站设计系统网站推广目的
  • 毕设 做网站id创建网站
  • 网站规划设计的一般流程沈阳建网站公司
  • seo综合查询可以关了吗南宁网站建设seo
  • 东营市两学一做考试网站wordpress粘贴word
  • 网站工程工资一般多少钱推广普通话作文500字
  • 青海省住房和建设厅网站浦东手机网站建设
  • 公司注册网站查询wordpress 色 片段
  • 网站推广策划方案模板技术支持 沧州网站建设
  • 鹤壁河南网站建设上海seo公司
  • wordpress 页脚加链接百度排名优化咨询电话
  • 重庆网站建设学习网站 默认页
  • 网站关键词热度做物流网站电话
  • 厦门外贸企业网站建设dremrever做网站流程
  • 网站域名费成立公司需要哪些手续
  • 巨鹿网站建设设计建设银行网站的支付流程
  • 婚庆网站建设需求分析公司网站免费建站怎么样
  • 百度网站优化软件网站前端建设报价单
  • 视频logo免费生成网站wordpress插件删除
  • 西安SEO网站建设哪家好浙江建设网
  • 怎么做网站接口wordpress 不同分类不同模板
  • 沣东新城开发建设集团有限公司网站网站seo策略
  • 检察机关门户网站建设自查报告6中山做网站好的公司
  • 专业的网站建设价格低自建网站流程
  • 贵州水电建设局网站网站首页代码
  • 学网站建设需要下载什么布吉网站建设哪家服务周到
  • 有那种做订单的网站吗恐龙网站建设
  • 廊坊网站开发公司展示型网站 asp.net
  • 做外贸用哪些网站网页游戏排行榜电脑
  • 深圳微信网站设计wordpress上传rar