演进:GB2312(2字节)→扩展繁体字→GBK(2字节)→扩展少数民族中日韩等→GB18030国家标准(4字节)。...注意GBK都是向下兼容的,即GB18030兼容GB2312,因为使用的编码位置没有重叠。 1.3.1 大五码 Big5码是一套双位元组字符集,使用了双八码储存方法,以两个字节来安放一个字。...具体来说,定义的是下列字节: 范围 第1字节 第2字节 编码数 字数 水准GBK/1 A1–A9 A1–FE 846 717 水准GBK/2 B0–F7 A1–FE 6,768 6,763 水准GBK/...3 81–A0 40–FE (7F除外) 6,080 6,080 水准GBK/4 AA–FE 40–A0 (7F除外) 8,160 8,160 水准GBK/5 A8–A9 40–A0 (7F除外) 192...2.3 GBK 事实上我们使用的GBK、GB18030都是标准,但由于我们的标准只对应一套特定的字符集,所以可以认为GBK就是字符集。
查询当前字符集: select userenv('language') from dual; USERENV('LANGUAGE') ---------------------------------...------------------- AMERICAN_AMERICA.ZHS16GBK 发现是 AMERICAN_AMERICA....修改Oracle用户环境变量 vim ~/.bash_profile export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK :wq source ~...再查询字符集 SQL> select userenv('language') from dual; USERENV('LANGUAGE') ------------------------------...-------------------------------------------------- SIMPLIFIED CHINESE_CHINA.ZHS16GBK 已改为SIMPLIFIED CHINESE_CHINA
今天有客户向我咨询:数据库由ZHS16GBK字符集修改为AL32UTF8字符集,发现中文的数据中小部分出现乱码,客户认为AL32UTF8明明可以支持更多的文字,不应该出现这样的情况才对。...不过,之前也一直有个误区,我们都知道AL32UTF8是可以支持多国语言的字符集,对于中文字节存储占用空间比ZHS16GBK多,然后第一反应就认为AL32UTF8应该是ZHS16GBK的超集。...这就说明我们要改的AL32UTF8字符集并不是ZHS16GBK的超集。...而客户端是Windows,chcp结果是936,也就是ZHS16GBK,这也进一步说明了ZHS16GBK和AL32UTF8字符集的不同。...同时实验还验证,如果数据库字符集本身是AL32UTF8,想修改成为ZHS16GBK字符集,也是一样的情况,需要加internal_use参数才可以转换,也就是说这种转换一样可能出现乱码,不过这个情况反倒好理解
一分钟了解这一改动的意义,以及老版本用户的建议 关注视频号,订阅更多视频干货内容
GBK编码 GBK编码在GB2312的基础上又增加了14240个汉字、生僻字和符号。...GBK标准进行解码,然后从第三个字节开始继续遍历检测。...在包含汉字数量上来说,Big5是GBK的子集,但是二者的编码方式是不同的,比如同样“啊”,GBK编码为0xB0A1,Big5编码为0xB0DA。...四、Unicode字符集 每个国家和地区都有一套自己的文字,不同的文字系统就要使用不同的编码标准,这就出现这样一个问题,同一个二进制编码在不同的编码标准中可能代表了不同的字符,比如0xB0A1,在GBK...而Unicode字符集在0xD800~0xDBFF区间内的编号不表示任何字符,UTF-16用这段编号与Unicode字符集中大于0xFFFF的字符编号进行映射,得到扩展的4字节编码。
安装软件提示 UnicodeDecodeError: 'utf-8' codec can't decode byte 提示字符集错误 使用 echo $LANG zh_CN.GB18030 所以需要修改字符集.../i18n LANG="zh_CN.UTF-8" source /etc/sysconfig/i18n Centos7 xshell 连接系统显示中文乱码解决 export LANG=zh_CN.gbk...永久生效在配置文件中写入: # vim /etc/profile # 在末尾追加 export LANG=zh_CN.gbk 然后执行 source /etc/profile
1 GB2312-80 GB 2312 或 GB 2312-80 是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,又称 GB 0,由中国国家标准总局发布,1981 年 5...对于人名、古汉语等方面出现的罕用字,GB 2312 不能处理,这导致了后来 GBK 及 GB 18030 汉字字符集的出现。...GBK 编码区分三部分: 汉字区 包括 GBK/2:OXBOA1-F7FE, 收录 GB 2312 汉字 6763 个,按原序排列; GBK/3:OX8140-AOFE,收录 CJK 汉字 6080...图形符号区 包括 GBK/1:OXA1A1-A9FE,除 GB 2312 的符号外,还增补了其它符号 GBK/5:OXA840-A9AO,扩除非汉字区。...3 GB18030 GB 18030,全称:国家标准 GB 18030-2005《信息技术中文编码字符集》,是中华人民共和国现时最新的内码字集,是 GB 18030-2000《信息技术信息交换用汉字编码字符集基本集的扩充
写此文章的由来,源于老男孩老师在群里发的一篇文章 “Linux运维班MySQL必会面试题100道” 因此,民工哥将题抄录下来,然后在线下环境将答案逐一验证,并写出来分享给需要的小伙伴,因答案纯属个人观点...,难免会有不正之处,还望小伙伴加改指正 01 如何启动MySql服务 /etc/init.d/mysqld start service mysqld start Centos 7.x 系统 sysctl...alter user 'root'@'localhost' identified by 'root' 04 登陆数据库 mysql -uroot -ppassword 05 查看当前数据库的字符集...select user(); #进入数据库查询 08 创建GBK字符集数据库mingongge并查看完整创建语句 create database mingongge default charset gbk...) )ENGINE=innodb DEFAULT CHARSET=gbk; 14 查看建表结构及表结构的SQL语句 desc test; show create table test\G ?
操作系统字符集 # 查看操作系统支持的所有字符集 $ locale -a # 查看操作系统支持的中文字符集 $ locale -a | grep zh # 查看当前系统字符集 $ locale 或...$ echo $LANG 或 $ env |grep LANG 或 # Centos7 字符集配置文件,Centos6 为:cat /etc/sysconfig/i18n $ cat /etc/locale.conf...# 临时设置字符集 $ LANG=zh_CN.UTF-8 # Centos7 设置字符集永久生效 ,Centos6 为:echo "LANG=zh_CN.UTF-8" > /etc/sysconfig.../i18n $ echo "LANG=zh_CN.UTF-8" > /etc/locale.conf 文件字符集 # 查看文件字符集 $ file testString.sh testString.sh.../bin/bash # 字符串操作符实例 # 使用 iconv 转换文件字符集,iconv -f 原编码 -t 转换后的编码 inputfile -o outputfile $ iconv -f utf
改库时指定 改库类似建库,效果一样。但需要注意的一点是,修改库字符集与排序规则后,之前基于这个库创建的各种对象,还是沿用老的字符集与排序规则。...utf8mb4 | utf8mb4_0900_ai_ci | +---------+--------------------+ 2 rows in set (0.00 sec) 那这种情况下,建库或者改库时不指定具体的字符集和排序规则...-- 以字符集 GBK 输出列 a1 a2,由于 a1 是保存的是字母,所以兼容输出。...-----------+--------------+ 1 row in set (0.00 sec) -- 以字符集utf8mb4和gbk不兼容,得单独输出列a3。...-- 建表 t2,指定字符集为 gbk. mysql> create table t2(a1 varchar(10),a2 varchar(10)) charset gbk; Query OK, 0 rows
常用字符集 长度 说明 GBK 2 不是国际标准 UTF-8 3 中英文混合的环境,建议使用 Latin1 1 mysql默认字符集...) 2.如果只需要支持中文,并且数据量大,性能要求高,可选择GBK(定长,每个汉字双字节) 3.处理移动互联网业务,可使用utf8mb4字符集 #查看系统的字符集 [root@cots3 ~]# mysql...2.乱码问题 #如果我们设置的字符集不相同的话,就会可能出现乱码 #保证不乱码思想:统一字符集,中英文的环境建议选择utf8 #保证不乱码的关键,保证以下几个统一 1.Linux操作系统 2.操作系统客户端连接...(xshell,ssh) 3.mysql服务端 4.mysql客户端 5.mysql库表 6.开发的程序字符集 #例子:统一设置成utf8 #1.Linux系统 [root@mysql-1 ~]# cat...utf8 #3.mysql客户端 #在/etc/my.cnf文件里面添加客户端模块,无需重启 [client] default-character-set=utf8 #4.mysql库表,一般上面几个改完
编码转换 一些老的项目,文件编码用的还是gbk,很不利于扩展及维护。经常需要在程序中进行判断及转码,容易出现乱码现象。最好的方式就是将整个项目转成utf-8。那么如何批量将一个目录下的文件转编码?...遍历要转码的文件类型,如.php 利用vim的set fileencoding=utf8进行转码 具体实现 设置~/.vimrc set fileencodings=utf-8,ucs-bom,gb18030,gbk...-type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u 转码的脚本 gbk_to_utf8.sh #!.../bin/bash for i in `find -name \*.php` do vim -s gbk_utf8.vi $i done gbk_utf8.vi :set fileencoding.../gbk_to_utf8.sh 欢迎查看我的网站原文
ZHS16GBK 2.国家字符集 一般都选用AL16UTF16 unicode字符集: UTF8 很老的,不用了。...注:实际生产环境,如果确定数据库只是中国人用(只有中英文相关字符)的话,就采用ZHS16GBK.. sql*plus客户端(设置原则:与所在操作系统字符集一致): windows:一般都是gbk,即chcp...结果为936 set NLS_LANG=american_america.zhs16gbk 语言和地区为中文中国的话,set NLS_LANG=simplified chinese_china.zhs16gbk...linux:一般为utf-8,即echo $LANG 结果为en_US.UTF-8 或zh_CN.UTF-8 export NLS_LANG=american_america.utf8 测试:客户端Linux...服务器操作系统字符集(暂时忽略) ps: 1.因为sql*plus 本身没有字符集,依赖于所在操作系统的字符集,而在远端linux上的oracle也是无法直接访问到windows上的字符集,所以依靠sql
Linux的软链接类似Windows的快捷方式,又不尽相同,本文对相关知识进行梳理总结 。...简介 软链接是将磁盘中的真实地址增加一个虚拟映射,使得用户访问该映射与访问真实磁盘地址完全相同,是Linux系统中灵巧编程的神兵利器。
宝塔自7.8版本后我就已经对它失望了,先是加很多的检测,后事加密代码,完全违背了全开源的初衷。虽然是迫于政策,但对付费插件这鸡肋的功能无语,比如我要同步数据库,...
关键字:oracle安装 昨天安装了个oracle19c,但在导入数据库时发现原来数据库的字符集设置错了,导致数据库文件无法正常导入并还原。今天又折腾了一半天查找如果修改oracle的字符集的操作。...SQL>ALTER DATABASE CHARACTER SET ZHS16GBK; ALTER DATABASE CHARACTER SET ZHS16GBK * ERROR at line 1...: ORA-12712: new character set must be a superset of old character set 提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更...改: SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; Database altered....SQL> select * from v$nls_parameters; 略 在内容中找下NLS_CHARACTERSET,这个值:ZHS16GBK 19 rows selected.
,Solaris是Big-Endians,Linux是Little-Endians,所以Linux上的输出通过交换可以得到: 0303 5445 58504f52 …....to_char('852','xxxx') from dual; TO_CH ----- 354 对应前两张图 第2、3字节,就知道该导出文件字符集为ZHS16GBk。...最常见的转换发生在从US7ASCII到ZHS16GBK之间。 由于很多数据库最初以US7ASCII字符集存储中文,单纯通过导出导入是无法完成字符集转换的。...对于这种情况,可以通过设置导出字符集为US7ASCII,原样导出数据;导出后修改导出文件的第二、三字符,修改0001为0354,这样就可以将US7ASCII字符集的数据正确导入到ZHS16GBK的数据库中...如果导出文件使用的字符集是US7ASCII,目标数据库的字符集是ZHS16GBK,就可以使用create database的方法来修改,具体操作如下: ? ?
当然,若Windows上安装了Cygwin软件的话,也可以像Linux那样查询: C:\Users\lhr>env|grep NLS_LANG NLS_LANG=AMERICAN_CHINA.ZHS16GBK...; 数据库字符集 ---------------------------------------------------- AMERICAN_AMERICA.ZHS16GBK 另外,也可以通过如下的视图来获取...87 CHARACTERSET 247 6、设置Oracle的NLS_LANG参数 在Windows上常用set命令,而在Linux..." NLS_LANG="AMERICAN_AMERICA.AL32UTF8" Linux上设置示例如下所示: [ZFLHRZHDB1:oracle]:/oracle>echo $NLS_LANG AMERICAN_AMERICA.ZHS16GBK...<=====可以看到数据库字符集是ZHS16GBK,而客户端字符集是AL32UTF8 在Linux上可以将NLS_LANG的参数写入.bash_profile文件中让其永久生效。
字符集四类设置1.1 操作系统字符集以下配置项是Linux系统的本地化(localization)设置,用于控制系统在不同方面如何呈现和处理数据。...我们进行一个简单的测试,从1个网页上复制汉字"数据库"到linux的文本文件中,这个网页的原始编码是什么呢?...摸拟测试gbk->gbk->gbk 按顺序分别表示插入字符串原始字符集,客户端字符集,表字符集,简单理解就是字符的原始字符集,我们告诉数据库字符是什么字符集,目标字符集。...因为虽然数据的字符集是GBK,但连接字符集是UTF8,所以数据库进行了转换,然后终端(操作系统)字符集也是UTF8,所以能正常显示。...----公众号精华文章:1.MySQL谬误集01:读不加锁2.MySQL8.1来了:MySQL创新和长期支持(LTS)版本简介3.Gh-ost改表P0级BUG:可能导致数据丢失4.从一道数据库面试题彻谈
现象说明:在windows下编辑的内容,上传到linux平台下出现中文乱码。...文件,将字符集改为"UTF-8" 按Win键+run出现"运行",在里面输入"notepad"即可打开记事本。...主机传文件是经常的事,但有时文件名有中文,传到Linux机器会有乱码,选择起来也很麻烦,下面简单说下应对方法: 解决办法: 一般这种问题是文件的编码字符集、Shell编码字符集、XShell编码字符集不匹配...临时办法 1)简体中文的Windows一般使用GB字符集,这里将XShell设置为GBK 2) Linux主机 [root@AppServer1 ~]# export LANG=zh_CN.gbk 或者...永久生效 1) XShell属性设置 2) Linux环境变量设置 [root@AppServer1 ~]# vim /etc/profile export LANG=zh_CN.gbk /
领取专属 10元无门槛券
手把手带您无忧上云