gbk编码表如何制作GBK与Unicode的对照表

gbk编码表  时间:2021-01-13  阅读:()

GBK版与UTF版有什么区,哪个好

ASCII(ISO-8859-1)是鼻祖,最简单的方式,字节高位为0 GB2312、GBK、GB18030,这几个是中文编码方式,并向下兼容。

GB2312包含7000多个汉字和字符,GBK包含21000多个,GB18030更厉害,到了27000多个。

他们都是用2个字节来表示一个汉字。

跟ascii是怎么区分的呢?如果高字节的高位为1(也就是高字节大于127),就表示是汉字,低字节并无明显特征。

Unicode是统一编码,它建立了一个全世界统一的码表。

世界上的所有文字,在这张码表中都是唯一的。

UTF-8是Unicode的一种存储、传输方式。

它将整个Unicode码表分为3部分。

0000 - 007F 这部分是最初的ascii部分,按原始的存储方式,即0xxxxxxx。

0080 - 07FF 这部分存储为110xxxxx 10xxxxxx 0800 - FFFF 这部分存储为1110xxxx 10xxxxxx 10xxxxxx 因此,一个汉字究竟被存储为什么,就需要:先查unicode码表,然后根据在码表的位置进行计算。

例如:“电”字,在码表中是3575,计算成utf8就是E794B5,而在GB2312的码表中为B5E7 UTF-8的好处:兼容ASCII,存储英文文件都是单字节,文件小。

当然,当以存中文为主时就变成了3字节编码了,比GB系列还大!如何标明一个文件是utf8格式呢?这个标记是可选的:EF BB BF。

比如,用windows自带的记事本创建一个utf8格式的文件,就会加上这个标记。

但是,如果用ultraedit创建utf8文件,并不会加上这个标记。

这个标记有个术语,叫做BOM(Byte Order Mark)。

不带BOM的utf8文件和GB2312文件怎么区分呢?我也不知道。

唯一能想到的办法就是:先用一种试,如果出现乱码,就用另一种再试:) UTF-16是双字节存储,这就带来一个问题,即高低字节的顺序。

两个字节有两种顺序,它们也用BOM来标明。

分为大尾码和小尾码两种。

大尾码的BOM是FEFF,小尾码的BOM是FFFE 所以我觉得还是GBK好些,如果你是中文站的话 以上内容引用某人博客

gbk 编码表查询

GBK码: 华=BBAA 堉=88D6 竹=D6F1 GBK码数字形式: 华=11,11,10,10 堉=8,8,13,6 竹=13,6,15,1

如何制作GBK与Unicode的对照表

从网上搜索到发表于2010年的《制作GBK-Unicode编码对照表的方法》拷贝于下供参考: Java的字符串String类功能强大,不但能进行一些基本的字符串操作,还可以根据需要构造指定字符集的字符串,本文所介绍的方法正是利了这一点,这种方法的基本思路是: 1、遍历GBK编码表中的所有汉字,使用该字的GB编码构造一个字符串。

GBK编码表中各部分的汉字分块比较整齐,很容易遍历。

2、使用getBytes方法取得该字符的字节数组,由于Java是用unicode来表示字符的,所以此汉字的unicode就在其中。

以下是一段示例代码: { int count = 0; for(int segIndex=0xb0; segIndex<=0xf7; segIndex++) { for(int charIndex=0xa1; charIndex<=0xfe; charIndex++) { byte gbkBytes = new byte {(byte)(segIndex), (byte)charIndex}; byte unicodeBytes; String str = new String(gbkBytes,"GBK"); unicodeBytes = str.getBytes("unicode"); if(unicodeBytes.length == 4) { count++; String buffer = ""; for (int i=0;ibr /> buffer += (int)(0x00ff&gbkBytes[i]) + " "; for (int i=3;i>1;i--) buffer += (int)(0x00ff&unicodeBytes[i]) + " "; buffer += ""; osw.write(buffer); } } } } 这一段是对GBK/2区的汉字进行遍历并处理的代码,GBK/2区的首字节范围在[0xb0,0xf7],尾字节范围在[0xa1,0xfe],在构造字符串时使用的字符集为GBK String str = new String(gbkBytes,"GBK"); 在使用getBytes取得的字节数组中会有四个元素,前两个不知是做什么用的,可能与字符串本身的结构有关,接下来的两个字节才是真正的unicode码。

但这两个字节是倒序的,要从最后一个字节开始取,之所以这样是与big_endian和little_endian有关的,这里不多说。

当每一次内层循环结束时,buffer字符串中前两个数字就是一个GB码,后面两个数字就是一个unicode码,把它写到文件中就行了。

这样的文件得到之后,再在另外的程序中载入文件,把Unicode值装入数组,以GB码为索引,就可以很方便地由GB码查得Unicode码。

牦牛云(3.5USD/月 )阿里云国际版云服务器 1核1G40G

收到好多消息,让我聊一下阿里云国际版本,作为一个阿里云死忠粉,之前用的服务器都是阿里云国内版的VPS主机,对于现在火热的阿里云国际版,这段时间了解了下,觉得还是有很多部分可以聊的,毕竟,实名制的服务器规则导致国际版无需实名这一特点被无限放大。以前也写过几篇综合性的阿里云国际版vps的分析,其中有一点得到很多人的认同,那句是阿里云不管国内版还是国际版的IO读写速度实在不敢恭维,相对意义上的,如果在这...

创梦云 香港沙田、长沙联通2核1G仅需29元一个月 挂机宝7元一个月

商家介绍:创梦云是来自国内的主机销售商,成立于2018年4月30日,创梦云前期主要从事免备案虚拟主机产品销售,现在将提供5元挂机宝、特惠挂机宝、香港云服务器、美国云服务器、低价挂机宝等产品销售。主打高性价比高稳定性挂机宝、香港云服务器、美国云服务器、香港虚拟主机、美国虚拟主机。官方网站:http://cmy0.vnetdns.com本次促销产品:地区CPU内存硬盘带宽价格购买地址香港特价云服务器1...

HostDare($33.79/年)CKVM和QKVM套餐 可选CN2 GIA线路

关于HostDare服务商在之前的文章中有介绍过几次,算是比较老牌的服务商,但是商家背景财力不是特别雄厚,算是比较小众的个人服务商。目前主流提供CKVM和QKVM套餐。前者是电信CN2 GIA,不过库存储备也不是很足,这不九月份发布新的补货库存活动,有提供九折优惠CN2 GIA,以及六五折优惠QKVM普通线路方案。这次活动截止到9月30日,不清楚商家这次库存补货多少。比如 QKVM基础的五个方案都...

gbk编码表为你推荐
拂晓雅阁有什么网站是学电脑技术的`?百度抢票浏览器猎豹浏览器,360抢票,百度卫士抢票哪个抢票工具好?不兼容vivo手机和软件不兼容怎么办?网店推广网站怎么免费推广淘宝店铺?网易公开课怎么下载如何将网易公开课下载到电脑上?二层交换机什么是三层交换机?什么是二层叫交换机?有什么区别?安全漏洞计算机一般存在哪些安全漏洞?分词技术怎样做好百度分词技术和长尾词优化网络虚拟机虚拟机网络设置服务器连接异常主服务器连接异常
郑州服务器租用 中国域名网 香港ufo uk2 rak机房 koss 2017年黑色星期五 dropbox网盘 警告本网站 全能主机 免费网站申请 元旦促销 智能骨干网 卡巴斯基官方免费版 1g空间 卡巴斯基免费试用 东莞idc 网购分享 wordpress中文主题 测试网速命令 更多