中文编码、字符集,GBK, UTF-8的概念
字符集指的是什么?
字符集是一个人为的规定,人们用一个小册子规定好“文字字符”与“数字”的对应关系。
其中,每一个字符对应的数组也称其为编码。
例如,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的概念的更多相关文章
- 从Java String实例来理解ANSI、Unicode、BMP、UTF等编码概念
转(http://www.codeceo.com/article/java-string-ansi-unicode-bmp-utf.html#0-tsina-1-10971-397232819ff9a ...
- 字符编解码的故事 字符集 GBK GB2312 GB18030 Unicode 的由来和区别
本文为转载. 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们认为8个开关状态作为原子单位很好,于是他们把这称为"字节". 再后来 ...
- MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题 收藏 MySQL中涉及的几个字符集
MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的.character-set-database:数据 ...
- mysq查询语句包含中文以及中文乱码,字符集 GBK、GB2312、UTF8的区别
一.查看mysql 字符集设置情况 使用Navicat for Mysql查看工具,打开命令列界面,输入show variables like '%char%';如下图,查看当前mysql字符集设置情 ...
- 字符集GBK升级UTF8
在生产环境中,数据库字符集因为各种原因需要升级,比如为了支持汉字,从latin1字符集升级到GBK,后面为了支持多个语言文字,需要将GBK升级到UTF8等.迁移过程网上有很多,我今天主要想讲下字符集转 ...
- 解决mysql中表字符集gbk,列字符集Latin1,python查询乱码问题
最近在公司碰到一个异常蛋疼的情况,mysql数据库中,数据库和表的字符集都是'gbk',但是列的字符集却是'latin1',于是蛋疼的事情出现了. 无论我连接字符串的`charset`设置为`gbk` ...
- phpmyadmin设置编码和字符集gbk或utf8_导入中文乱码解决方法
一.phpmyadmin设置新建数据库的默认编码为utf8编码的方法 1:新建数据库 my_db 2:使用sql语句 set character_set_server=utf8; //设置默认新 ...
- [Unity+Android]横版扫描二维码
原地址:http://blog.csdn.net/dingxiaowei2013/article/details/25086835 终于解决了一个忧伤好久的问题,严重拖了项目进度,深感惭愧!一直被一系 ...
- 字符集、字符编码、国际化、本地化简要总结(UNICODE/UTF/ASCII/GB2312/GBK/GB18030)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明 普通的linux 和 普通的windows. ...
- GB2312、GBK、GB18030 这几种字符集的主要区别
1 GB2312-80 GB 2312 或 GB 2312-80 是中国国家标准简体中文字符集,全称<信息交换用汉字编码字符集·基本集>,又称 GB 0,由中国国家标准总局发布,1981 ...
随机推荐
- hdu 1272 小希的迷宫 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 第二条并查集,和畅通工程的解法类似.判断小希的迷宫不符合条件,即有回路.我的做法是,在合并两个集 ...
- HDU 1023 Traning Problem (2) 高精度卡特兰数
Train Problem II Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Sub ...
- Codeforces 424A (思维题)
Squats Time Limit: 1000MS Memory Limit: 262144KB 64bit IO Format: %I64d & %I64u Submit Statu ...
- linux架构图
/ 根目录 │ ├boot/ 启动文件.所有与系统启动有关的文件都保存在这里 │ └grub/ Grub引导器相关的文件 │ ├dev/ 设备文件 ├proc/ 内核与进程镜像 │ ├mnt/ 临时挂 ...
- SQL的IN, SOME,ANY,IN
表dbo.Student有12条数据 name 123123123123123123123123123123123123大雄1阿华浩然菊花大姐123123 1.some,any用法一样(不知道有没有其 ...
- jquery easy ui 1.3.4 事件与方法的使用(3)
3.1.easyui事件 easyui事件可以在构建的时候就通过属性方式添加上去,比如在panel收缩的时候添加一个事件,在构建的时候代码如下 onCollapse: function () { al ...
- Z-XML团队年终博客整理
一个优秀的团队一定有逻辑清晰,风格优雅,严格规范的博客. ------图灵 大三上转眼间已经到了收官阶段,我们的软工课也逐渐接近尾声.在二轮迭代即将结束的时候,当我们梳理一路走来的软工课,我们发现自己 ...
- PL/SQL Developer 连接新数据库
1 2 3
- Effective C++笔记:构造/析构/赋值运算
条款05:了解C++默默编写并调用哪些函数 默认构造函数.拷贝构造函数.拷贝赋值函数.析构函数构成了一个类的脊梁,只有良好的处理这些函数的定义才能保证类的设计良好性. 当我们没有人为的定义上面的几个函 ...
- 基于C#语言利用Microsoft.office.introp.excel操作Excel总结
终于解决了质量评估测试软件在任意装有excel(2010以下版本)的电脑上正常使用的问题!!!!!!!!!! 可到http://www.microsoft.com/en-sa/download/con ...