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码。

RAKsmart美国VPS上市,活动期间5折抢购仅$30,$1.99/月

RAKsmart机房将于7月1日~7月31日推出“年中大促”活动,多重惊喜供您选择;爆款I3-2120仅30美金秒杀、V4新品上市,活动期间5折抢购、爆款产品持续热卖、洛杉矶+硅谷+香港+日本站群恢复销售、G口不限流量产品超低价热卖。美国VPS、日本VPS及香港VPS享全场7折优惠;爆款VPS $ 1.99/月限量秒杀,10台/天,售完即止, VPS 7折优惠码:VPS-TP-disRAKsmar...

IMIDC日本多IP服务器$88/月起,E3-123x/16GB/512G SSD/30M带宽

IMIDC是一家香港本土运营商,商家名为彩虹数据(Rainbow Cloud),全线产品自营,自有IP网络资源等,提供的产品包括VPS主机、独立服务器、站群独立服务器等,数据中心区域包括香港、日本、台湾、美国和南非等地机房,CN2网络直连到中国大陆。目前主机商针对日本独立服务器做促销活动,而且提供/28 IPv4,国内直连带宽优惠后每月仅88美元起。JP Multiple IP Customize...

A400互联(49元/月)洛杉矶CN2 GIA+BGP、1Gbps带宽,全场独服永久5折优惠

a400互联是一家成立于2020年商家,主营美国机房的产品,包括BGP线路、CN2 GIA线路的云服务器、独立服务器、高防服务器,接入线路优质,延迟低,稳定性高,额外也还有香港云服务器业务。当前,全场服务器5折,香港VPS7折,洛杉矶VPS5折,限时促销!A400互联官网:https://a400.net/优惠活动全场独服永久5折优惠(续费同价):0722香港VPS七折优惠:0711洛杉矶VPS五...

gbk编码表为你推荐
bluestacksBlueStacks是什么?在PC上畅玩Android 45万款应用渗透测试网站渗透测试怎么做?1433端口怎么去看1433端口手机区号手机号码显卡温度多少正常显卡温度多少算正常?ps抠图技巧请教PS抠图技巧!!!网易公开课怎么下载哪位高手指导一下,如何下载网易公开课啊?保护气球什么气球可以骑?ios系统苹果手机的系统是什么?安全漏洞web安全漏洞有哪些
域名查询软件 域名商 wavecom idc测评网 suspended mysql主机 panel1 台湾谷歌网址 元旦促销 怎样建立邮箱 softbank邮箱 老左正传 免费防火墙 新睿云 万网空间管理 网通服务器 云营销系统 申请免费空间 114dns 阿里云邮箱个人版 更多