GB2312、GBK、BIG5、Unicode及字符编码基础知识
GB2312、GBK、BIG5、Unicode及字符编码基础知识在搜狗的设置里面有个选项,要用户选择使用GBK还是GB2312,论坛里面常常有人要求输入法支持BIG5编码,也有人提到 Unicode编码,那么这些东东都是什么意思呢?我查找资料不求甚解的了解了一下,把我的初步理解和大家分享一下吧: ------------- 最早的字符编码先从ASCII说起。ASCII是用来表示英文字符的一种编码规范,每个ASCII字符占用1个字节(8bits),因此,ASCII编码可以表示的最大字符数是256,其实英文字符并没有那么多,一般只用前128个(最高位为0),其中包括了控制字符、数字、大小写字母和其他一些符号。 而最高位为1的另128个字符被成为“扩展ASCII”,一般用来存放英文的制表符、部分音标字符等等的一些其他符号。但是扩展ASCII码没有真正的标准化,于是各个国家纷纷利用扩展ASCII制定了自己的文字编码规范,对于汉字来说,一个中文字符可以用两个扩展ASCII字符来表示。 ----------------- 这3套编码标准都采用了两个扩展ASCII字节的方法,因此,几套编码互不兼容,而且编码区间也各有不同。因为其不兼容性,在同一个系统中同时显示GB和Big5基本上是不可能的,所以当时经常看到由于编码不符造成的乱码。当时的南极星、RichWin等等软件,在自动识别中文编码、自动显示正确编码方面都做了很多努力。 后来,国际上又制定了针对中文的统一字符集GBK和GB18030。 ---------------- 于是,Unicode诞生了。Unicode是由国际组织(国际标准化组织ISO和Unicode协会)设计的一种字符编码方法,可以容纳全世界所有语言文字的编码方案。Unicode的学名"Universal Multiple-Octet Coded Character Set",简称为UCS。 在Unicode里,所有的字符被一视同仁。汉字不再使用“两个扩展ASCII”,而是使用“1个Unicode”,注意,现在的汉字是“一个字符”了,于是,拆字、统计字数这些问题也就自然而然的解决了。Unicode 16编码里面已经包含了GB18030里面的所有汉字(27484个字),目前Unicode标准准备把康熙字典的所有汉字放入到Unicode 32bit编码中。从理论上来说,Unicode能够表示世界上所有的书写语言中可能用于电脑通讯的字元、象形文字和其他符号。到了现在,Unicode标准已经不单是一个编码标准,还是记录人类语言文字资料的一个巨大的数据库,同时从事人类文化遗产的发掘和保护工作。 Unicode只与ASCII兼容(更准确地说,是与ISO-8859-1兼容),与GB码、BIG5码都不兼容。 ---------------- |
支持Unicode必然是大势所趋,但要首先解决的是操作系统的字符集和字库的问题。就拼音输入法来说其实不是太麻烦,首先编码上很容易,仅仅是多些字、多些读音。而那些生僻字构词又极少,对词库的干扰自然很小。加上那些日韩汉字基本是用不上的,可以不作考虑。所以在输入法开发方来说工作量有限。 Unicode还在发展,目前用内码、区位码的方式可以输入不少Unicode3.1里的汉字(是不是全部我不知道,我想至少含多奇怪的日韩汉字是不支持的吧。),而常用输入法的编码似乎没有跟上。像海峰五笔用86版是仅有的支持国际超大字集的流行输入方式。拼音输入法基本上还停留在GBK上。而即便可以用海峰打出很多生僻字来,但在多数缺少专门字库支持的电脑上是无法正常显示的。所以,关键还是操作系统自身对Unicode的支持。 |
GB2312、GBK、BIG5、Unicode及字符编码基础知识相关推荐
- 计算机ucs汉字编码,字符编码基础知识 - Unicode,UCS,GBK,GB2312,UTF-8
字符编码基础知识- Unicode,UCS,GBK,GB2312,UTF-8 最近遇到一个Unicode和UTF-8关系比较的问题,之前在处理中文显示时也遇到过类似的问题,于是花时间学习了一下,在此做 ...
- GB2312和BIG5,Unicode/UTF8等编码之间的互相转化
在工作中经常会用到GB2312和BIG5,Unicode/UTF8等编码之间的互相转化,也有很多程序员对这个问题不断的提问,现在我把我的 实现告诉大家. #include "Utf8.h&q ...
- 计算机字符编码基础知识
计算机字符编码基础知识 由于计算机只能识别0和1,所以字符(文字.符号)需要编码,图像.音频.视频等也需要编码.本文主要介绍字符编码,特别是与机内码相关的内容. 字符的处理涉及到下列三类编码: 输入码 ...
- 常用字符集(ASCII,ISO8859-1,GB2312,GBK,Unicode)和字符编码(UTF-8,UTF-16)
转自:https://blog.csdn.net/wn084/article/details/80363792 参考:https://blog.csdn.net/halchan/article/det ...
- 编码全解:从ASCII/ISO-8859/GB2312/GBK到Unicode的UCS-2/UCS-4/UTF-8/UTF-16/UTF-32
1.ASCII编码 为了能在电报.打印机.计算机等电信设备上进行信息交换,就必须为不同的设备制定统一的编码格式.早期的电信设备字符编码基本都是使用6位编码.1963年美国国家标准协会(ANSI)制定并 ...
- 编码gbk的不可映射字符_Python基础:编码表和字符的故事
在计算机内部,都是每8位组成的一个个字节,比如我们使用"abc".encode()把abc转化成二进制byte类型,注意byte是不可变类型: 编码过程 >>> ...
- python3 gb2312转utf8_python2和python3字符编码 unicode,utf-8,gb2312相互转换encode,decode...
一.预习: 1.Unicode 和utf-8之间的关系 unicode是一种编码标准,具体的实现标准可能是utf-8,utf-16,gbk -- UTF-8是Unicode的实现方式之一 2.pyth ...
- 各种编码格式(GB2312,GBK,GB18030,unicode,utf-8)之间的关系
汉字常用编码格式 为了在屏幕上显示字符.需要下面几个步骤: 制作所有字符对应的字模.比如大写字母A长什么样.这个模样就是最终显示在屏幕上图形,即我们看到的字符A. 为对所有的字符进行编码.比如大写字母 ...
- VC中三种常见中文内码的转换方法(GB2312/GBK/BIG5)
我们平时常见的三种中文内码是:GB2312(简体中文).GBK.BIG5(繁体中文).网上有很多中文内码的专用转换工具.我们碰到由于内码不一致而导致的乱麻问题,用这些工具可以进行相互转换.但论坛里经常 ...
最新文章
- 一个资深投行女销售和低调IT创业男的故事
- 记录mysql中的隐患特性
- 如何利用DeepFM算法设计推荐系统
- 基于ArcEngine实现分组统计面积的功能
- Spring 框架基础(01):核心组件总结,基础环境搭建
- 各种服务器系统桌面,服务器系统云桌面
- 源码包nginx 配置php,源码安装Nginx和PHP
- java 8进制 前是 零,从零学java笔录-第6篇 进制之间转换
- 汉诺塔的图解递归算法
- latex关于的报错问题及表格排版问题
- 《华为工作法》8 自我提升的华为人
- 在已有win7系统的基础上重装win10系统
- 向军php视频教程下载,向军hd框架视频教程,后盾网框架下载
- 奥西450的服务器系统,奥西TDS450驱动
- 哈希表,设计哈希集合,
- 【吐槽】B站大量番剧下架,程序猿们这时都在干什么?
- 链表实现学生信息管理系统
- 数学基础知识积累——傅里叶分析
- Java9中2个被废弃的使用方法
- 使用 SSM 框架实现发送手机短信验证码
热门文章
- java计算机毕业设计中小型企业资金流管理系统源程序+mysql+系统+lw文档+远程调试
- 【idea系列】idea中的pom.xml不是蓝色
- com.upd.sso.client.SsoFilter.init(SsoFilter.java..)无法访问swagger-ui.html
- 小学生蓝桥杯Python闯关 | 汇总
- 写在2019年末的一些话
- mysql数据库replace写入_mysql 操作总结 INSERT和REPLACE
- Archlinux安装屏保墙纸软件(livewallpaper)
- 使用 ThreeJs 制作的任意阶级魔方游戏
- 计算机共享后不能互相访问吗,怎么设置局域网共享(局域网间电脑不能互访)...
- html表单位怎么设置,单位设置.html