字符编码与字库开发基本原理学习(一)
来源:互联网 发布:网络棋牌机器人规律 编辑:程序博客网 时间:2024/05/22 05:18
一些基本概念的理解
编码就是将各种文字,字符通过一个或者多个字节的数值来来代表这些字符。如:在Unicode这种编码里,“中”对应的编码就是 "u4e2d"。不同的编码”中“字,对应的编码也不同。
字库(或者称”字模“)就是描述字符形状的文件集合。字库有16位、24位、32位。每个字符对应于一个点阵。同时字库是按照一定编码制作成的如有的字库是符合GB2312的。
通过字符的编码值,到这个字库文件中去寻找该字符对应的点阵数据,将这个数据拷贝到二维数值中。在将二维数组的值拷贝到显示屏上对应的内存中,即可显示该字符。
举例:
当Linux系统中的某个终端编码设为UTF8字符集、或者GB2312字符集(终端菜单栏有设置)。我们通过标准输入“中”时,我们的输入缓存中得到的数据是不一样的。
不管使用那一种,我们用户看到的只是“中”字,这是由于字符集编码不同,“中”字对应的字符编码也不同。
例如:我们在UTF8字符集下输入”中“字,然后由通过终端菜单栏设置为GB2312,这是后我们看到前面输入的”中“字,变了样,我们在输入"中"字则能正常显示。这是由于操作系统会根据当前选择的字符集(一些16进制编码),来解析这些字节数据,如果系统看到buffer中的数据为[0XD6][0XD0],它是”中“字,则按照此字节到字库中找到”中“字的字模显示到终端。
一些编码介绍
1.ASCII码:一个字节.
2.GB2312 区位码.
3.GBK 分为三个编码区。(汉字区、图形编码区、用户自定义区)
4.Unicode使用4个字节来表示(用1字节表示 ASCII 、用2字节来表示拉丁文等、用3字节便是CJK字符(东亚文字)、用4字节为其它)
注意:以上编码值中,每个字节的值都有一定的范围(即不是每个字节值都是0~255)。
编程中的注意事项
1.如果我们编辑代码时使用的编码与我们使用的字库编码不一致,或者不相互兼容。那么我们代码中就会从字库中读到我们不想要的字符模型。从而出现乱码。
- 字符编码与字库开发基本原理学习(一)
- 字库字符编码
- 编码,字体与字库
- 编码与字库
- 中国汉字一、二级字库的汉字与unicode编码(十六进制)对照表(收藏)
- 搞清字库表、编码字符集、字符编码
- 字符集与字符编码(一)
- 字符编码学习小记一
- 字符编码(一)
- 数据库学习(一)----基本原理
- 汉字一、二级字库的汉字与unicode编码(十六进制)对照表,按照unicode的顺序排列
- 汉字一、二级字库的汉字与unicode编码(十六进制)对照表,按照unicode的顺序排列
- 汉字一、二级字库的汉字与unicode编码(十六进制)对照表,按照unicode的顺序排列
- JAVA IO(一)字符集与字符编码简介
- Android蓝牙BLE开发(一)-基本原理
- 信息论与编码 学习笔记(一)
- 字符与编码的学习与总结
- Hibernate学习总结(一) --基本原理
- linux下mysql的root密码忘记解决方
- HDU 4944 FSF’s game(数论+递推)
- Swap Nodes in Pairs --成对交换链表节点(重重重)
- apache中ab工具
- hdu 1006 Tick and Tick 模拟时钟注意时间连续性!
- 字符编码与字库开发基本原理学习(一)
- SQL data reader reading data performance test
- hdu 4937 Lucky Number 多校第七场
- sql防止注入攻击的方法
- HDU 4939 Stupid Tower Defense (DP)
- win7+ubuntu双系统安装方法
- 配置Apache虚拟主机
- 【安卓篇】Service类的onStartCommand与onStart方法介绍
- hdu 4941 Magical Forest