精华内容
下载资源
问答
  • 2017-07-13 16:59:27

    以下是常见的汉字字符集编码:

    GB2312编码:1981年5月1日发布的简体中文汉字编码国家标准。GB2312对汉字采用双字节编码,收录7445个图形字符,其中包括6763个汉字。

    BIG5编码:台湾地区繁体中文标准字符集,采用双字节编码,共收录13053个中文字,1984年实施。

    GBK编码:1995年12月发布的汉字编码国家标准,是对GB2312编码的扩充,对汉字采用双字节编码。GBK字符集共收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。

    GB18030编码:2000年3月17日发布的汉字编码国家标准,是对GBK编码的扩充,覆盖中文、日文、朝鲜语和中国少数民族文字,其中收录27484个汉字。GB18030字符集采用单字节、双字节和四字节三种方式对字符编码。兼容GBK和GB2312字符集。

    Unicode编码:国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。

    ----------------------------------------------------------------------------------

    项目的编码最好用UTF-8, 但是以前很多老项目用gb2312或gbk, 对于复杂或多子项目的项目,一部分页面修改为gb18030的话,

    页面的contentType 的编码修改为gb18030, 并且使用编码过滤器, 把请求编码为gb2312或gbk 的编码转为gb18030

    更多相关内容
  • 在对数据库访问的时候,由于客户端和服务器的字符集不一样,客户端的字符集需要访问多个数据库,不能修改环境变量,可以使用该方法进行转换和将英文字符集的数据插入到中文字符集
  • 国标一二级汉字字符集,GB2312、GBK等全部汉字,用于编码查询等。
  • 车牌识别字符集.zip

    2020-03-30 12:08:23
    使用PhotoShop软件参照GA36-2007国家机动车号牌标准创建的440mm×140mm常用标准车牌字符集,可用于车牌识别算法发开发中的字符匹配或者机器学习中的标准训练集,图像尺寸为4.5cm×9cm,像素密度为300ppi,分辨率531...
  • 资源包含中文车牌号中的数字、字母和省份汉字,可以利用这些字符集来训练和识别车牌号。
  • 该资源为车牌字符图片(16*32归一化后的灰度图),包含的车牌汉字字符有:川、鄂、甘、赣、贵、桂、黑、沪、吉、冀、晋、津、京、辽、鲁、蒙、闽、宁、青、琼、陕、苏、皖、湘、新、渝、豫、粤、云、藏、浙、使、澳...
  • 常见的字符集总结

    千次阅读 2022-02-28 21:51:17
    MySQL 字符编码集中两套 UTF-8 ...字符集的种类较多,每个字符集可以表示的字符范围通常不同,就比如说有些字符集是无法表示汉字的。 计算机只能存储二进制的数据,那英文、汉字、表情等字符应该如何存储呢? ...

    MySQL 字符编码集中有两套 UTF-8 编码实现:utf8 和 utf8mb4

    如果使用 utf8 的话,存储emoji 符号和一些比较复杂的汉字、繁体字就会出错。

    为什么会这样呢?这篇文章可以从源头给你解答。

    何为字符集?

    字符是各种文字和符号的统称,包括各个国家文字、标点符号、表情、数字等等。 字符集 就是一系列字符的集合。字符集的种类较多,每个字符集可以表示的字符范围通常不同,就比如说有些字符集是无法表示汉字的。

    计算机只能存储二进制的数据,那英文、汉字、表情等字符应该如何存储呢?

    我们要将这些字符和二级制的数据一一对应起来,比如说字符“a”对应“01100001”,反之,“01100001”对应 “a”。我们将字符对应二进制数据的过程称为"字符编码",反之,二进制数据解析成字符的过程称为“字符解码”。


    有哪些常见的字符集?

    常见的字符集有 ASCII、GB2312、GBK、UTF-8......。

    不同的字符集的主要区别在于:

    • 可以表示的字符范围
    • 编码方式

    #ASCII

    ASCII (American Standard Code for Information Interchange,美国信息交换标准代码) 是一套主要用于现代美国英语的字符集(这也是 ASCII 字符集的局限性所在)。

    为什么 ASCII 字符集没有考虑到中文等其他字符呢? 因为计算机是美国人发明的,当时,计算机的发展还处于比较雏形的时代,还未在其他国家大规模使用。因此,美国发布 ASCII 字符集的时候没有考虑兼容其他国家的语言。

    ASCII 字符集至今为止共定义了 128 个字符,其中有 33 个控制字符(比如回车、删除)无法显示。

    一个 ASCII 码长度是一个字节也就是 8 个 bit,比如“a”对应的 ASCII 码是“01100001”。不过,最高位是 0 仅仅作为校验位,其余 7 位使用 0 和 1 进行组合,所以,ASCII 字符集可以定义 128(2^7)个字符。

    由于,ASCII 码可以表示的字符实在是太少了。后来,人们对其进行了扩展得到了 ASCII 扩展字符集 。ASCII 扩展字符集使用 8 位(bits)表示一个字符,所以,ASCII 扩展字符集可以定义 256(2^8)个字符。

    ASCII字符编码

    #GB2312

    我们上面说了,ASCII 字符集是一种现代美国英语适用的字符集。因此,很多国家都捣鼓了一个适合自己国家语言的字符集。

    GB2312 字符集是一种对汉字比较友好的字符集,共收录 6700 多个汉字,基本涵盖了绝大部分常用汉字。不过,GB2312 字符集不支持绝大部分的生僻字和繁体字。

    对于英语字符,GB2312 编码和 ASCII 码是相同的,1 字节编码即可。对于非英字符,需要 2 字节编码。

    #GBK

    GBK 字符集可以看作是 GB2312 字符集的扩展,兼容 GB2312 字符集,共收录了 20000 多个汉字。

    GBK 中 K 是汉语拼音 Kuo Zhan(扩展)中的“Kuo”的首字母。

    #GB18030

    GB18030 完全兼容 GB2312 和 GBK 字符集,纳入中国国内少数民族的文字,且收录了日韩汉字,是目前为止最全面的汉字字符集,共收录汉字 70000 多个。

    #BIG5

    BIG5 主要针对的是繁体中文,收录了 13000 多个汉字。

    #Unicode & UTF-8编码

    为了更加适合本国语言,诞生了很多种字符集。

    我们上面也说了不同的字符集可以表示的字符范围以及编码规则存在差异。这就导致了一个非常严重的问题:使用错误的编码方式查看一个包含字符的文件就会产生乱码现象。

    就比如说你使用 UTF-8 编码方式打开 GB2312 编码格式的文件就会出现乱码。示例:“牛”这个汉字 GB2312 编码后的十六进制数值为 “C5A3”,而 “C5A3” 用 UTF-8 解码之后得到的却是 “ţ”。

    你可以通过这个网站在线进行编码和解码:https://www.haomeili.net/HanZi/ZiFuBianMaZhuanHuan

    这样我们就搞懂了乱码的本质: 编码和解码时用了不同或者不兼容的字符集 。

    为了解决这个问题,人们就想:“如果我们能够有一种字符集将世界上所有的字符都纳入其中就好了!”。

    然后,Unicode 带着这个使命诞生了。

    Unicode 字符集中包含了世界上几乎所有已知的字符。不过,Unicode 字符集并没有规定如何存储这些字符(也就是如何使用二进制数据表示这些字符)。

    然后,就有了 UTF-88-bit Unicode Transformation Format)。类似的还有 UTF-16、 UTF-32。

    UTF-8 使用 1 到 4 个字节为每个字符编码, UTF-16 使用 2 或 4 个字节为每个字符编码,UTF-32 固定位 4 个字节为每个字符编码。

    UTF-8 可以根据不同的符号自动选择编码的长短,像英文字符只需要 1 个字节就够了,这一点 ASCII 字符集一样 。因此,对于英语字符,UTF-8 编码和 ASCII 码是相同的。

    UTF-32 的规则最简单,不过缺陷也比较明显,对于英文字母这类字符消耗的空间是 UTF-8 的 4 倍之多。

    UTF-8 是目前使用最广的一种字符编码,。


    MySQL 字符集

    MySQL 支持很多种字符编码的方式,比如 UTF-8、GB2312、GBK、BIG5。

    你可以通过 SHOW CHARSET 命令来查看。

    通常情况下,我们建议使用 UTF-8 作为默认的字符编码方式。

    不过,这里有一个小坑。

    MySQL 字符编码集中有两套 UTF-8 编码实现:

    • utf8 : utf8编码只支持1-3个字节 。 在 utf8 编码中,中文是占 3 个字节,其他数字、英文、符号占一个字节。但 emoji 符号占 4 个字节,一些较复杂的文字、繁体字也是 4 个字节。
    • utf8mb4 : UTF-8 的完整实现,正版!最多支持使用 4 个字节表示字符,因此,可以用来存储 emoji 符号。

    为什么有两套 UTF-8 编码实现呢? 原因如下:

    因此,如果你需要存储emoji类型的数据或者一些比较复杂的文字、繁体字到 MySQL 数据库的话,数据库的编码一定要指定为utf8mb4 而不是utf8 ,要不然存储的时候就会报错了。

    演示一下吧!(环境:MySQL 5.7+)

    建表语句如下,我们指定数据库 CHARSET 为 utf8 。

    CREATE TABLE `user` (
      `id` varchar(66) CHARACTER SET utf8mb4 NOT NULL,
      `name` varchar(33) CHARACTER SET utf8mb4 NOT NULL,
      `phone` varchar(33) CHARACTER SET utf8mb4 DEFAULT NULL,
      `password` varchar(100) CHARACTER SET utf8mb4 DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    当我们执行下面的 insert 语句插入数据到数据库时,果然报错!

    INSERT INTO `user` (`id`, `name`, `phone`, `password`)
    VALUES
    	('A00003', 'guide哥😘😘😘', '181631312312', '123456');
    
    

    报错信息如下:

    Incorrect string value: '\xF0\x9F\x98\x98\xF0\x9F...' for column 'name' at row 1

    参考

    • 字符集和字符编码(Charset & Encoding): https://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html
    • 十分钟搞清字符集和字符编码:http://cenalulu.github.io/linux/character-encoding/
    • Unicode-维基百科:https://zh.wikipedia.org/wiki/Unicode
    • GB2312-维基百科:https://zh.wikipedia.org/wiki/GB_2312
    • UTF-8-维基百科:https://zh.wikipedia.org/wiki/UTF-8
    • GB18030-维基百科: https://zh.wikipedia.org/wiki/GB_18030

     

    展开全文
  • GBK字符集(汉字完整版),所有汉字
  • 中文字符集

    千次阅读 2014-08-27 17:37:27
    GB2312(1980年):16位字符集,收录6763个简体汉字,682个符号,共7445个字符。 优点:适用于简体中文环境,属于中国国家标准,通行于大陆,新加坡等地也使用此编码;  缺点:不兼容繁体中文,其汉字集合过少...
    GB2312(1980年):16位字符集,收录有6763个简体汉字,682个符号,共7445个字符。
    优点:适用于简体中文环境,属于中国国家标准,通行于大陆,新加坡等地也使用此编码; 
    缺点:不兼容繁体中文,其汉字集合过少。 
    GBK(1995年):16位字符集,收录有21003个汉字,883个符号,共21886个字符。
    优点:适用于简繁中文共存的环境,为简体Windows所使用(代码页cp936),向下完全兼容gb2312,向上支持 ISO-10646 国际标准 ;所有字符都可以一对一映射到unicode2.0上。
    缺点:不属于官方标准,和big5之间需要转换;很多搜索引擎都不能很好地支持GBK汉字。
    GB18030(2000年):32位字符集;收录了27484个汉字,同时收录了藏文、蒙文、维吾尔文等主要的少数民族文字。 
    优点:可以收录所有你能想到的文字和符号,属于中国最新的国家标准;
    缺点:目前支持它的字库较少。
    BIG5(1992):BIG5收录13461个汉字和符号,通行于台湾、香港地区的一个繁体字编码方案,BIG5是台湾资讯工业策进会根据以上标准制定的编码方案。BIG5码是双字节编码方案,其中第一个字节的值在OXAO-OXFE之间,第二个字节在OX40-OX7E和OXA1-OXFE之间。
    展开全文
  • unicode 汉字字符集

    2016-12-30 14:27:49
    unicode 汉字字符集 汉字完整版
  • 本标准的单字节编码部分、双字节编码部分和四字节编码部分的CJK统一汉字扩充A(即0x8139EE39--0x82358738)部分为强制性。
  • 设置中文字符集

    2021-02-20 18:41:07
    CentOS7设置中文字符集 目录 一、字符编码和字符集 1、字符编码(character encoding): 2、字符集(Character set) 3、国际编码(Unicode) 二、汉字的编码 1、汉字的编码 2、汉字的编码选择 3...

    CentOS7设置中文字符集

     

    目录

     

    一、字符编码和字符集

    1、字符编码(character encoding):

    字符编码是一种法则,在数字与符号之间建立的对应关系。不同的国家有不同的语言,包含的文字、标点符号、图形符号各有不同。例如在ASCII编码中,用数字97表达字符'a'与字符集相对应,常见的字符编码有ASCII,GBK,GB18030,Unicode等。

    2、字符集(Character set)

    字符集是字符的集合,字符是文字和符号的总称,用ASCII编码的字符集称之为ASCII字符集,用GBK编码的字符集称之为GBK字符集。

    3、国际编码(Unicode)

    为了解决传统的字符编码方案的局限,1994年发布了Unicode(国际编码、统一码、万国码、单一码、通用码),它是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 将全世界所有的字符统一化,统一编码,再也不存在字符集不兼容和字符转换的问题。

    Unicode 有以下三种编码方式:

    1)UTF-8:兼容ASCII编码;拉丁文、希腊文等使用两个字节;包括汉字在内的其它常用字符使用三个字节;剩下的极少使用的字符使用四个字节。

    2)UTF-16:对相对常用的60000余个字符使用两个字节进行编码,其余的使用4字节。

    3)UTF-32:固定使用4个字节来表示一个字符,存在空间利用效率的问题。

    二、汉字的编码

    1、汉字的编码

    支持汉字(简体中文)的编码有GB2312、GB13000、GBK、GB18030和Unicode(UTF-8、UTF-16、UTF-32)。

    1)GB2312

    仅包含大部分的常用简体汉字,但已经不能适应现在的需要。

    2)GB13000

    由于GB2312的局限性,国家标准化委员会制定了GB13000编码;但由于当时的硬件和软件都已经支持了GB2312,而GB13000与GB2312完全不兼容,所以没有能够得到大范围的推广使用。

    3)GBK

    有了GB13000的教训,中国国家标准化委员会制定了GBK标准,并兼容了GB2312标准,同时在GB2312标准的基础上扩展了GB13000包含的字;由于该标准有微软的支持,得到了广泛的应用。

    4)GB18030

    GB18030编码比GBK又新增了几千个汉字,但由于码位不足使用了2byte与4byte混合编码方式,这给软件开发增加了难度。

    5)Unicode

    包含全世界所有国家需要用到的字符,是国际编码,通用性强。

    2、汉字的编码选择

    在操作系统和数据库中,常用的汉字编码有GBK、GB18030和Unicode,GBK和GB18030的优势是占用空间小,Unicode的优势是全球化的支持。

    在应用开发中,如果不考虑全球化,最好的选择是GBK和GB18030。

    3、编码的转换

    GBK和GB18030与Unicode编码之间需要转换,否则会出现汉字乱码。

    三、设置Linux的字符集

    1、查看当前系统已安装的字符集

    1)locale命令用于查看当前系统全部的已安装的字符集,Linux支持的符集约800种。

    locale -a
    

    2)查看已安装的中文字符集(只查看中国大陆的,不包括香港和台湾)

    locale -a|grep zh_CN
    

    在这里插入图片描述

    上图表示已经安装了中文字符集。

    2、安装中文字符集

    如果您的Linux系统没有安装中文字符集,可以用yum命令安装。

    我查了一些资料,安装中文字符集软件包的方法比较多,没找到准确的说法,所以把多种方法都写了进来,以下命令都可以执行,不会有副作用。

    yum -y groupinstall chinese-support
    yum -y install chinese-support
    yum -y install kde-l10n-Chinese
    yum -y install ibus-table-chinese-1.4.6-3.el7.noarch
    

    安装后,执行locale -a|grep zh_CN,如果显示的内容如下,表示安装成功。

    在这里插入图片描述

    3、修改字符集配置文件

    CentOS6.x 字符集配置文件在/etc/sysconfig/i18n文件中。

    CentOS7.x 字符集配置文件在/etc/locale.conf文件中,内容如下:

    在这里插入图片描述

    执行以下命令或者重启系统使修改生效。

    CentOS6.x

    source /etc/sysconfig/i18n
    

    CentOS7.x:

    source /etc/locale.conf
    

    四、LANG环境变量

    LANG环境变量存放的是Linux系统的语言、地区、字符集,它不需要系统管理员手工设置,/etc/profile会调用/etc/profile.d/lang.sh脚本完成对PATH的设置。

    五、修改客户端的字符集

    客户端的字符集必须与Linux服务端一致,否则会出现乱码,以SecureCRT为例。修改会话的属性,在Appearance界面中的Character
    encoding下拉框中选择。

    在这里插入图片描述

    六、字符集转换工具

    Linux提供了iconv命令把文件内容从一种编码转换成另一种编码。

    参数说明:

    --list:列出iconv支持的编码列表。

    -f encoding:源文件内容的编码。

    -t encoding:目标文件内容的编码。

    -o file:指定输出文件。

    -c:忽略输出的非法字符。

    -l:列出已知的编码字符集。

    -s:禁止警告信息,但不是错误信息。

    --verbose:显示进度信息。

    示例:

    把当前目录的book1.c由gbk转换成utf-8,结果输出到/tmp/book1_utf8.c中。

    iconv -f gbk -t utf-8 book1.c -o /tmp/book1_utf8.c
    

    七、应用经验

    1)Linux系统在业务化之前,就应该确定字符集,然后不再改变。系统在业务化后,修改字符集是一件很麻烦的事情,最好别惹这个麻烦。

    2)如果项目没有全球化的需求,Linux的字符集建议采用zh_CN.gbk。

    3)虽然gb18030字符集比gbk更丰富,但是gb18030中有部分汉字是4字节,这一点让程序员很郁闷,所以,程序员更倾向gbk字符集。

    4)设置Linux的字符集时,还要考虑WEB系统和数据库系统采用的字符集,最好是大家都保持一致。

    八、版权声明

    C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
    来源:C语言技术网(www.freecplus.net)
    作者:码农有道

    如果文章有错别字,或者内容有错误,或其他的建议和意见,请您留言指正,非常感谢!!!

    分类: LInux教程

    标签: C++CLinuxMysqlOracle数据库

    展开全文
  • mysql字符集

    千次阅读 2021-02-07 18:11:31
    mysql字符集字符集基础字符集:数据库中的字符集包含两层含义各种文字和符号的集合,包括各国家文字,标点符号,图形符号,数字等。字符的编码方式,即二进制数据与字符的映射规则;字符集分类:ASCII:美国信息互换...
  • 中日韩汉字超大字符集
  • GB2312-80(国标码).txt GBK(大字库).txt Big5(大五码).txt Unicode(大字符集).txt
  • Oracle字符集的三大类型

    千次阅读 2021-05-01 05:12:53
    我们都知道Oracle字符集问题,可以分成三类: 即,数据库字符集, sqlplus的字符集(客户端字符集),以及 终端程序的字符集 (非Oracle的),以下的文章就是对Oracle字符集三种类型的主要描述。1、数据库字符集数据库字符...
  • gb18030中文编码字符集

    2018-10-18 17:48:47
    GB18030-2005 信息技术 中文编码字符集,单双四字节所有字符,包含简繁生僻字。
  • UTF-8 中文字符集

    2013-09-25 17:35:57
    UTF-8 中文 字符集表 免费share UTF-8 ---> Chinese Charset Table
  • GB2312汉字编码字符集对照表.xls
  • 此文本文档是UTF-8字符集中汉字编码对照表,可以用于查看某个汉字在UTF-8编码集中的位置。此编码对照表非官网下载,如需使用,请提前预估风险。另外,此对照表只用于学习研究,如需用到其他地方,后果自负。
  • GB2312字符集 txt

    2017-09-20 18:57:08
    《信息交换用汉字编码字符集》是由中国国家标准总局1980年发布,1981年5月1日开始实施的一套国家标准,标准号是GB 2312—1980。 GB2312编码适用于汉字处理、汉字通信等系统之间的信息交换,通行于中国大陆;新加坡等...
  • GBK字符集.txt

    2019-12-25 18:37:34
    汉字字库,自己用软件得到他的点阵吧,毕竟每个人的用途不一样,取模方式肯定区别,自己实现吧。哈哈哈哈哈哈哈哈哈哈哈
  • MySQL字符集详解

    2021-12-25 10:46:15
    今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL字符集。 一、MySQL字符集简介 二、查看和设置MySQL字符集 (一)查看当前字符集设置 (二)更改默认字符集 (三)在创建表时指定字符集 三、更改MySQL字符集
  • MySQL字符集

    千次阅读 2019-06-30 21:27:10
    字符集就是字符和编码的集合,常用的中文字符集是gbk,英文字符集是ASCII 多种字符在一个字符集里,常用的UTF8 2.数据库存取数据与字符集的关系 数据库在存取数据时,会在字符集中寻找各个字符对应的编码,然后存取...
  • 字符集的设置不当是影响ORACLE数据库汉字显示的关键问题
  • CentOS7字符集介绍与中文字符集设置

    千次阅读 2020-05-26 14:09:41
    例如在ASCII编码中,用数字97表达字符’a’与字符集相对应,常见的字符编码ASCII,GBK,GB18030,Unicode等。 2、字符集(Character set) 字符集是字符的集合,字符是文字和符号的总称,用ASCII编码的字符集称之...
  • 中文字符集与编码转换

    千次阅读 2019-04-18 11:45:27
    字符集,windows 又称代码页, 与操作系统的当前字符集项不匹配时,会显示乱码。 常见的简体中文字符集( windows 代码页 936 ) GB18030: 1字节 兼容 ascii 字符 2 字节 普通中文 ...
  • aix 字符集安装

    2013-09-03 11:49:47
    Aix下安装Zh_CN字符集 1. 在命令行里输入locale –a,查看当前安装了哪些字符集,没有所需要的Zh_CN
  • 常用汉字字符集 主要用于随机生成常用汉字 做汉字验证码
  • LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK Linux: export NLS_LANG=american_america.AL32UTF8 export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK 以上为常用客户端字符集,一个是英文,一个是中文! 本次分享到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 270,075
精华内容 108,030
关键字:

中文字符集有哪些