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站群新增,限量低至月1.99美元

RAKsmart 商家八月份的促销活动今天更新。基本上和上个月的产品套餐活动差不多的,不过也是有简单的微调。对于RAKsmart商家还是比较了解的,他们家产品虽然这两年增加多个机房,以及在VPS主机方案上有丰富的机房和调整到一些自营机房,他们家的策划能力还是有限,基本上每个月的套餐活动都差不多。RAKsmart 在八月份看到有新增香港高防服务器可选,最高100GB防御。同时原来上个月缺货的日本独立...

华纳云新人下单立减40元/香港云服务器月付60元起,香港双向CN2(GIA)

华纳云(HNCloud Limited)是一家专业的全球数据中心基础服务提供商,总部在香港,隶属于香港联合通讯国际有限公司,拥有香港政府颁发的商业登记证明,保证用户的安全性和合规性。 华纳云是APNIC 和 ARIN 会员单位。主要提供数据中心基础服务、互联网业务解决方案, 以及香港服务器租用、香港服务器托管、香港云服务器、美国云服务器,云计算、云安全技术研发等产品和服务。其中云服务器基于成熟的 ...

DiyVM:50元/月起-双核,2G内存,50G硬盘,香港/日本/洛杉矶机房

DiyVM是一家比较低调的国人主机商,成立于2009年,提供VPS主机和独立服务器租用等产品,其中VPS基于XEN(HVM)架构,数据中心包括香港沙田、美国洛杉矶和日本大阪等,CN2或者直连线路,支持异地备份与自定义镜像,可提供内网IP。本月商家最高提供5折优惠码,优惠后香港沙田CN2线路VPS最低2GB内存套餐每月仅50元起。香港(CN2)VPSCPU:2cores内存:2GB硬盘:50GB/R...

gbk编码表为你推荐
绵阳电信绵阳电信宽带套餐资费推荐郭彩妮台灣有什麽新的電視劇?淘宝收费淘宝卖东西收多少手续费彩信中心移动的彩信中心是?主页是?收不到彩信,怎么设置?vbscript教程请教一下高手们,这个VBS脚本难不难啊,我想学学这个,但是又不知道该从哪入手,希望高手指点指点??怎么升级ios6iPad怎么升级到iOS6正式版?网页打开很慢为什么我打开网页很慢安全漏洞计算机一般存在哪些安全漏洞?安全漏洞什么是安全漏洞攻击??系统分析员系统分析师是什么职业?主要做什么工作?
注册国际域名 怎么申请域名 本网站服务器在美国维护 阿里云搜索 flashfxp怎么用 paypal认证 贵州电信宽带测速 服务器怎么绑定域名 青果网 免费smtp服务器 100m空间 腾讯实名认证中心 t云 idc查询 香港新世界中心 服务器维护 iki ledlamp 免费网络空间 国内空间 更多