字符集指的是什么?

字符集是一个人为的规定,人们用一个小册子规定好“文字字符”与“数字”的对应关系。

其中,每一个字符对应的数组也称其为编码。

例如,ASCII码表就是一个字符集

char 'A'  = 65,A的编码为65

char '0'  = 48,0的编码为48

字符集是由一些组织制定和发布的,如ISO/IEC就负责制定字符集。

每一个字符集都有一个标准编号,如ASCII字符集的编号为ISO/IEC 646。

【拉丁字符集(Latin)】

拉丁字符集:收录了欧洲各个国家的字符。例如,希腊字母, Α α, Β β

拉丁字符集的编号为ISO 8859系列

例如:ISO8859-1字符集,也就是 Latin-1,是西欧常用字符,包括德法两国的字母。

ISO8859-2字符集,也就是 Latin-2,收集了东欧字符。

注意:拉丁字符总数超过了256个,无法用一个char型表示,需要用2个字节。

所以即使不使用中文,外文字母的表示也有问题。

char a='α';//有问题

问题原因:无法用一个字节表示一个字符。

char str[]="α β";//五个字节存储->sizeof(str)

【中文字符集】

GB2312 中文简体国标码(汉字数:6763)

GBK 扩展中文GB编码(兼容GB2312)

GB18030 用1-4个字节编码,容量超大

BIG5 中文繁体编码

CJK 中日韩大字符集编码

Unicode  统一码,用0-0x10FFFF映射全球各国的语言文字。

【GB2312/GBK】

双字节编码,每个字节的高位为1

不包含生僻字

对于人名、古汉语等方面出现的罕见字,GB2312不能处理,这导致了后来GBK以及GB 18030汉字字符集的出现

GBK兼容了GB2312,较为常用。

【Unicode】

国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。

0-0x10FFFF(最多1114112个字符)

【问题】Unicode用几个字节来表示一个字符?

第一种方案:UFT-32编码

  每个字符用一个int来表示

  特点:简单,但太浪费空间

第二种方案:UTF-16编码

  特点:用1-2个short来表示一个字符

第三种方案:UTF-8编码

  用1-4个字节来表示一个字符(比较节省空间)

中文编码、字符集,GBK, UTF-8的概念的更多相关文章

  1. 从Java String实例来理解ANSI、Unicode、BMP、UTF等编码概念

    转(http://www.codeceo.com/article/java-string-ansi-unicode-bmp-utf.html#0-tsina-1-10971-397232819ff9a ...

  2. 字符编解码的故事 字符集 GBK GB2312 GB18030 Unicode 的由来和区别

    本文为转载. 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们认为8个开关状态作为原子单位很好,于是他们把这称为"字节". 再后来 ...

  3. MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题 收藏 MySQL中涉及的几个字符集

    MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的.character-set-database:数据 ...

  4. mysq查询语句包含中文以及中文乱码,字符集 GBK、GB2312、UTF8的区别

    一.查看mysql 字符集设置情况 使用Navicat for Mysql查看工具,打开命令列界面,输入show variables like '%char%';如下图,查看当前mysql字符集设置情 ...

  5. 字符集GBK升级UTF8

    在生产环境中,数据库字符集因为各种原因需要升级,比如为了支持汉字,从latin1字符集升级到GBK,后面为了支持多个语言文字,需要将GBK升级到UTF8等.迁移过程网上有很多,我今天主要想讲下字符集转 ...

  6. 解决mysql中表字符集gbk,列字符集Latin1,python查询乱码问题

    最近在公司碰到一个异常蛋疼的情况,mysql数据库中,数据库和表的字符集都是'gbk',但是列的字符集却是'latin1',于是蛋疼的事情出现了. 无论我连接字符串的`charset`设置为`gbk` ...

  7. phpmyadmin设置编码和字符集gbk或utf8_导入中文乱码解决方法

    一.phpmyadmin设置新建数据库的默认编码为utf8编码的方法 1:新建数据库  my_db 2:使用sql语句  set character_set_server=utf8;  //设置默认新 ...

  8. [Unity+Android]横版扫描二维码

    原地址:http://blog.csdn.net/dingxiaowei2013/article/details/25086835 终于解决了一个忧伤好久的问题,严重拖了项目进度,深感惭愧!一直被一系 ...

  9. 字符集、字符编码、国际化、本地化简要总结(UNICODE/UTF/ASCII/GB2312/GBK/GB18030)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明   普通的linux 和 普通的windows.    ...

  10. GB2312、GBK、GB18030 这几种字符集的主要区别

    1 GB2312-80 GB 2312 或 GB 2312-80 是中国国家标准简体中文字符集,全称<信息交换用汉字编码字符集·基本集>,又称 GB 0,由中国国家标准总局发布,1981 ...

随机推荐

  1. 在windows下用toolbox玩会docker

    哈哈哈.

  2. CC2540开发板学习笔记(二)——按键

    一.实验内容 用按键S1控制LED1的亮和灭 二.实验过程 1.电路原理: 可以看出,当S按下P0.0和P0.1接地,反之则接高电压. 2.寄存器使用: 依旧应该首先进行3个基本寄存器的设定,对LED ...

  3. Loadrunner中web_custom_request使用场景

    其中有一段从服务器段动态返回的字符串需要重新提交给服务器(见红色标注) 录制自动生成的脚本是: web_submit_data("generateYfLstAction.do",  ...

  4. eclispe报错PermGen space

    最近使用eclipse做开发,使用的服务器是tomcat,但在启动时报了Caused by: java.lang.OutOfMemoryError: PermGen space的异常. 这个错误很常见 ...

  5. 数据采集器移动手持打印POS终端(PDA)商超抄单方案-PDA抄单无线开单+进销存软件

    PDA主要应用在业务员外出在超市能及时抄单发送回总公司,总公司办公人员及时在软件里面调出业务员的抄单数量进行配货,大大提供工作效率. 移动数据终端和无线基础架构相结合,面向零售与批发门店店员的解决方案 ...

  6. 万网云解析设置二级域名解析到同IP不同端口

    http://jingyan.baidu.com/article/eb9f7b6d8a02a5869364e827.html

  7. ZOJ2314 Reactor Cooling(无源汇流量有上下界网络的可行流)

    题目大概说一个核反应堆的冷却系统有n个结点,有m条单向的管子连接它们,管子内流量有上下界的要求,问能否使液体在整个系统中循环流动. 本质上就是求一个无源汇流量有上下界的容量网络的可行流,因为无源汇的容 ...

  8. sql截取查询

    select left(songno,3) as songno from song  //截取前3位 select distinct right(left(songno,6),3) as Files ...

  9. 获取RenderedGeometry不对的处理

    如果是在代码中添加的形状,获取Shape.RenderedGeometry会出错. 这是由于WPF没有更新形状的原因,调用Shape.Arrange()后问题解决.

  10. RectAnimation用于在DrawingVisual画进度条

    使用Visual来画图,可以使用其派生类,UIElement.Viewport3DVisual用于呈现3D内容,其他可以用来画图的为DrawingVisual,使用DrawingVisual可以使用编 ...