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

vpsdime:VPS内存/2核/VPS,4G内存/2核/50gSSD/2T流量/达拉斯机房达拉斯机房,新产品系列-Windows VPS

vpsdime上了新产品系列-Windows VPS,配置依旧很高但是价格依旧是走低端线路。或许vpsdime的母公司Nodisto IT想把核心产品集中到vpsdime上吧,当然这只是站长个人的猜测,毕竟winity.io也是专业卖Windows vps的,而且也是他们自己的品牌。vpsdime是一家新上来不久的奇葩VPS提供商,实际是和backupspy以及crowncloud等都是同一家公司...

妮妮云80元/月,香港站群云服务器 1核1G

妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款,超过2天不退款 物...

Hostiger发布哥伦布日提供VPS主机首月七折优惠 月费2.79美元

Hostiger商家我们可能以前也是有见过的,以前他们的域名是Hostigger,后来进行微调后包装成现在的。而且推出Columbus Day哥伦布日优惠活动,提供全场的VPS主机首月7折月付2.79美元起的优惠。这里我们普及一下基础知识,Columbus Day ,即为每年10月12日,是一些美洲国家的节日,纪念克里斯托弗·哥伦布在北美登陆,为美国的联邦假日。Hostiger 商家是一个成立于2...

gbk编码表为你推荐
免费制作qq空间怎么样免费做qq空间photoimpact教程怎样用photoimpact制作漫画网点?是PI不是PS!安装程序配置服务器失败安装用友u8的数据库最后说:“安装程序配置服务器失败。参考服务器错误日志和 C:WINDOWSsqlstp.log 了解更多信息。”站长故事爱迪生的故事中国论坛大全有谁知道国内人气最高的论坛排行榜?怎么在qq空间里添加背景音乐怎样在qq空间里免费添加背景音乐?百度手写百度如何手写:直播加速有没有软件使已经下载好了的视频播放加速,例如30分钟的视频15分钟或者20分钟播放完二层交换机什么是三层交换机?什么是二层叫交换机?有什么区别?什么是云平台什么是云平台管理软件,一个云平台软件应该具有哪些基本功能
科迈动态域名 荣耀欧洲 堪萨斯服务器 lamp配置 网站被封 云鼎网络 ibox官网 坐公交投2700元 七夕促销 腾讯实名认证中心 metalink paypal注册教程 银盘服务 免费外链相册 服务器维护 中国电信测速网站 申请免费空间 1美元 asp空间 tracker服务器 更多