GB2312 UTF8 UCS2汉字编码对应表
最近老是遇到遇到中文编码转换的问题,但是又不是所有的环境都提供编码转换的工具。所以不如自己把整个汉字编码库搞下来,再逐个查询。
- window的默认编码是GBK,GBK向下兼容GB2312
- GBK:双字节编码,范围0x8140-0xFEFE,23940个码位,21003个汉字.
- GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;GB2312简体中文编码表 - 常用参考表对照表 - 脚本之家在线工具 (jb51.net)
对各个编码的解释看大佬的文章:UTF-8编码规则_我是谁的博客-CSDN博客_utf8编码
可以相互佐证。至于百度到的UTF-8计算工具,它们只是把Unicode的编码放出来,Unicode还分大头和小头呢,根本就不是UTF-8的编码,中文的UTF-8编码至少是3个字节的。
常用字用GB2312就足够,内存不大,甚至可以放到单片机上。
刚好用了 下QT,qt有转码用的库,GB2312的编码是按顺序排列,从第1区到第87区,10~15区没编码。所以可以直接for循环生成再转换就完事了。顺便做个工具后面方便使用GB2312,UTF8,UCS2汉字编码生成与转换工具-互联网文档类资源-CSDN下载。
使用界面:
编码转换
按区生成
生成的库C库:使用方法,比如已经编码x,编码方式为GB2312,先比对X在GB2312库的位置,找到位置下标,这个也是x在其它库的位置下标
/** 单个编码转换,转换失败的话返回原始编码* code:输入原始编码* intype:原始编码类型:下面其中的一个* GB2312,* UTF8,* UCS2_BIG,* UCS2_LITTLE,* wanttype:目标编码类型,下面其中的一个* GB2312,* UTF8,* UCS2_BIG,* UCS2_LITTLE,* */ uint32_t textCode::textCodeConvet(uint32_t code, textCode::CodeType intype, textCode::CodeType wanttype) {const uint32_t *intp; //懒得做16,8位的区分了,使用32位的,存储估计要炸const uint32_t *wantp;//懒得做16,8位的区分了,使用32位的,存储估计要炸switch (intype) { //区分输入代码库case textCode::GB2312:intp=_GB2312_1_87;break;case textCode::UTF8:intp=_UTF8_1_87;break;case textCode::UCS2_BIG:intp=_UCS2_Big_1_87;break;case textCode::UCS2_LITTLE:intp=_UCS2_Little_1_87;break;default:return code;break;}switch (wanttype) {//区分输出代码库case textCode::GB2312:wantp=_GB2312_1_87;break;case textCode::UTF8:wantp=_UTF8_1_87;break;case textCode::UCS2_BIG:wantp=_UCS2_Big_1_87;break;case textCode::UCS2_LITTLE:wantp=_UCS2_Little_1_87;break;default:return code;break;}if((code & 0x00ff)&&(code & 0xff00))// 高位,低位都不为零for(uint32_t i=0;i<TEXTCODE_SIZE;i++)//TEXTCODE_SIZE 7614{if(intp[i] == code) //找到编码的位置{return wantp[i];//输出对应编码}}return code; }
第16区的中文编码,加了中文字符注释后超过数字限制了。。。。完整的去下载吧https://download.csdn.net/download/u013866683/75642756
#include <stdint.h>
// GB2312原始编码从0XA1A0到0XFEFF。从01到94个区,其中10~15,(6个区)没有编码,88~94区(7区)没有编码。
//有效编码区只有81个区,分别是01~09区、6~87区
//每个区有从0xXXA1到0xXXDE,A0和EF都没有编码,有效编码94个
//所以共有编码个数94*81=7614。
// GB2312的编码为两个字节,转UTF编码后有3个字节,转UCS编码有2个字节。
// Unicode编码会用UCS-BIG或者UCS-LITTLE(大端或者小端),它们的区别就是高低字节位置不同。
//比如中文编码
// “哈”:
// GB2312 0xB9FE
// UTF-8 0xE59388
// UCS-BIG 0x54C8
// UCS-LITTLE 0xC854
const uint32_t _GB2312_16_16[]={ //前缀0xB0A1, 0xB0A2, 0xB0A3, 0xB0A4, 0xB0A5, 0xB0A6, 0xB0A7, 0xB0A8, 0xB0A9, 0xB0AA, 0xB0AB, 0xB0AC, 0xB0AD, 0xB0AE, 0xB0AF, //第16区: B0A0 : 啊,阿,埃,挨,哎,唉,哀,皑,癌,蔼,矮,艾,碍,爱,隘, 0xB0B0, 0xB0B1, 0xB0B2, 0xB0B3, 0xB0B4, 0xB0B5, 0xB0B6, 0xB0B7, 0xB0B8, 0xB0B9, 0xB0BA, 0xB0BB, 0xB0BC, 0xB0BD, 0xB0BE, 0xB0BF, //第16区: B0B0 : 鞍,氨,安,俺,按,暗,岸,胺,案,肮,昂,盎,凹,敖,熬,翱, 0xB0C0, 0xB0C1, 0xB0C2, 0xB0C3, 0xB0C4, 0xB0C5, 0xB0C6, 0xB0C7, 0xB0C8, 0xB0C9, 0xB0CA, 0xB0CB, 0xB0CC, 0xB0CD, 0xB0CE, 0xB0CF, //第16区: B0C0 : 袄,傲,奥,懊,澳,芭,捌,扒,叭,吧,笆,八,疤,巴,拔,跋, 0xB0D0, 0xB0D1, 0xB0D2, 0xB0D3, 0xB0D4, 0xB0D5, 0xB0D6, 0xB0D7, 0xB0D8, 0xB0D9, 0xB0DA, 0xB0DB, 0xB0DC, 0xB0DD, 0xB0DE, 0xB0DF, //第16区: B0D0 : 靶,把,耙,坝,霸,罢,爸,白,柏,百,摆,佰,败,拜,稗,斑, 0xB0E0, 0xB0E1, 0xB0E2, 0xB0E3, 0xB0E4, 0xB0E5, 0xB0E6, 0xB0E7, 0xB0E8, 0xB0E9, 0xB0EA, 0xB0EB, 0xB0EC, 0xB0ED, 0xB0EE, 0xB0EF, //第16区: B0E0 : 班,搬,扳,般,颁,板,版,扮,拌,伴,瓣,半,办,绊,邦,帮, 0xB0F0, 0xB0F1, 0xB0F2, 0xB0F3, 0xB0F4, 0xB0F5, 0xB0F6, 0xB0F7, 0xB0F8, 0xB0F9, 0xB0FA, 0xB0FB, 0xB0FC, 0xB0FD, 0xB0FE, //第16区: B0F0 : 梆,榜,膀,绑,棒,磅,蚌,镑,傍,谤,苞,胞,包,褒,剥, };//后缀
const uint32_t _UTF8_16_16[]={ //前缀0xE5958A, 0xE998BF, 0xE59F83, 0xE68CA8, 0xE5938E, 0xE59489, 0xE59380, 0xE79A91, 0xE7998C, 0xE894BC, 0xE79FAE, 0xE889BE, 0xE7A28D, 0xE788B1, 0xE99A98, //第16区: B0A0 : 啊,阿,埃,挨,哎,唉,哀,皑,癌,蔼,矮,艾,碍,爱,隘, 0xE99E8D, 0xE6B0A8, 0xE5AE89, 0xE4BFBA, 0xE68C89, 0xE69A97, 0xE5B2B8, 0xE883BA, 0xE6A188, 0xE882AE, 0xE69882, 0xE79B8E, 0xE587B9, 0xE69596, 0xE786AC, 0xE7BFB1, //第16区: B0B0 : 鞍,氨,安,俺,按,暗,岸,胺,案,肮,昂,盎,凹,敖,熬,翱, 0xE8A284, 0xE582B2, 0xE5A5A5, 0xE6878A, 0xE6BEB3, 0xE88AAD, 0xE68D8C, 0xE68992, 0xE58FAD, 0xE590A7, 0xE7AC86, 0xE585AB, 0xE796A4, 0xE5B7B4, 0xE68B94, 0xE8B78B, //第16区: B0C0 : 袄,傲,奥,懊,澳,芭,捌,扒,叭,吧,笆,八,疤,巴,拔,跋, 0xE99DB6, 0xE68A8A, 0xE88099, 0xE59D9D, 0xE99CB8, 0xE7BDA2, 0xE788B8, 0xE799BD, 0xE69F8F, 0xE799BE, 0xE69186, 0xE4BDB0, 0xE8B4A5, 0xE68B9C, 0xE7A897, 0xE69691, //第16区: B0D0 : 靶,把,耙,坝,霸,罢,爸,白,柏,百,摆,佰,败,拜,稗,斑, 0xE78FAD, 0xE690AC, 0xE689B3, 0xE888AC, 0xE9A281, 0xE69DBF, 0xE78988, 0xE689AE, 0xE68B8C, 0xE4BCB4, 0xE793A3, 0xE58D8A, 0xE58A9E, 0xE7BB8A, 0xE982A6, 0xE5B8AE, //第16区: B0E0 : 班,搬,扳,般,颁,板,版,扮,拌,伴,瓣,半,办,绊,邦,帮, 0xE6A286, 0xE6A69C, 0xE88680, 0xE7BB91, 0xE6A392, 0xE7A385, 0xE89A8C, 0xE99591, 0xE5828D, 0xE8B0A4, 0xE88B9E, 0xE8839E, 0xE58C85, 0xE8A492, 0xE589A5, //第16区: B0F0 : 梆,榜,膀,绑,棒,磅,蚌,镑,傍,谤,苞,胞,包,褒,剥, };//后缀
const uint32_t _UCS2_Big_16_16[]={ //前缀0x554A,0x963F,0x57C3,0x6328,0x54CE,0x559,0x54C0,0x7691,0x764C,0x853C,0x77EE,0x827E,0x788D,0x7231,0x9698, //第16区: B0A0 : 啊,阿,埃,挨,哎,唉,哀,皑,癌,蔼,矮,艾,碍,爱,隘, 0x978D,0x6C28,0x5B89,0x4FFA,0x639,0x6697,0x5CB8,0x80FA,0x6848,0x80AE,0x662,0x76CE,0x51F9,0x6556,0x71AC,0x7FF1, //第16区: B0B0 : 鞍,氨,安,俺,按,暗,岸,胺,案,肮,昂,盎,凹,敖,熬,翱, 0x8884,0x50B2,0x5965,0x61CA,0x6FB3,0x82AD,0x634C,0x6252,0x53ED,0x5427,0x7B6,0x516B,0x75A4,0x5DF4,0x62D4,0x8DCB, //第16区: B0C0 : 袄,傲,奥,懊,澳,芭,捌,扒,叭,吧,笆,八,疤,巴,拔,跋, 0x9776,0x628A,0x8019,0x575D,0x9738,0x7F62,0x7238,0x767D,0x67CF,0x767E,0x6446,0x4F70,0x8D25,0x62DC,0x7A17,0x6591, //第16区: B0D0 : 靶,把,耙,坝,霸,罢,爸,白,柏,百,摆,佰,败,拜,稗,斑, 0x73ED,0x642C,0x6273,0x822C,0x9881,0x677F,0x7248,0x626E,0x62CC,0x4F34,0x74E3,0x534A,0x529E,0x7ECA,0x90A6,0x5E2E, //第16区: B0E0 : 班,搬,扳,般,颁,板,版,扮,拌,伴,瓣,半,办,绊,邦,帮, 0x6886,0x699C,0x8180,0x7ED1,0x68D2,0x78C5,0x868C,0x9551,0x508D,0x8C24,0x82DE,0x80DE,0x535,0x8912,0x5265, //第16区: B0F0 : 梆,榜,膀,绑,棒,磅,蚌,镑,傍,谤,苞,胞,包,褒,剥, };//后缀
const uint32_t _UCS2_Little_16_16[]={ //前缀0x4A55,0x3F96,0xC357,0x2863,0xCE54,0x955,0xC054,0x9176,0x4C76,0x3C85,0xEE77,0x7E82,0x8D78,0x3172,0x9896, //第16区: B0A0 : 啊,阿,埃,挨,哎,唉,哀,皑,癌,蔼,矮,艾,碍,爱,隘, 0x8D97,0x286C,0x895B,0xFA4F,0x963,0x9766,0xB85C,0xFA80,0x4868,0xAE80,0x266,0xCE76,0xF951,0x5665,0xAC71,0xF17F, //第16区: B0B0 : 鞍,氨,安,俺,按,暗,岸,胺,案,肮,昂,盎,凹,敖,熬,翱, 0x8488,0xB250,0x6559,0xCA61,0xB36F,0xAD82,0x4C63,0x5262,0xED53,0x2754,0x67B,0x6B51,0xA475,0xF45D,0xD462,0xCB8D, //第16区: B0C0 : 袄,傲,奥,懊,澳,芭,捌,扒,叭,吧,笆,八,疤,巴,拔,跋, 0x7697,0x8A62,0x1980,0x5D57,0x3897,0x627F,0x3872,0x7D76,0xCF67,0x7E76,0x4664,0x704F,0x258D,0xDC62,0x177A,0x9165, //第16区: B0D0 : 靶,把,耙,坝,霸,罢,爸,白,柏,百,摆,佰,败,拜,稗,斑, 0xED73,0x2C64,0x7362,0x2C82,0x8198,0x7F67,0x4872,0x6E62,0xCC62,0x344F,0xE374,0x4A53,0x9E52,0xCA7E,0xA690,0x2E5E, //第16区: B0E0 : 班,搬,扳,般,颁,板,版,扮,拌,伴,瓣,半,办,绊,邦,帮, 0x8668,0x9C69,0x8081,0xD17E,0xD268,0xC578,0x8C86,0x5195,0x8D50,0x248C,0xDE82,0xDE80,0x553,0x1289,0x6552, //第16区: B0F0 : 梆,榜,膀,绑,棒,磅,蚌,镑,傍,谤,苞,胞,包,褒,剥, };//后缀
GB2312 UTF8 UCS2汉字编码对应表相关推荐
- 计算机ucs汉字编码,字符编码基础知识 - Unicode,UCS,GBK,GB2312,UTF-8
字符编码基础知识- Unicode,UCS,GBK,GB2312,UTF-8 最近遇到一个Unicode和UTF-8关系比较的问题,之前在处理中文显示时也遇到过类似的问题,于是花时间学习了一下,在此做 ...
- java ucs2转utf8_Unicode,UTF8,GB2312,UCS2,GBK之间的转换
Unicode,UTF8,GB2312,UCS2,GBK之间的转换 平时用到的几种编码格式转换.平时用的不是很多.但是在做短信协议的时候,就经常遇到了.这段时间做短信平台接口,总结了几个,也不是很全. ...
- 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...
- 字节 字符 utf-8 unicode 以及提交表单验证字符长度 .......
通常我们所说的字其实准确的说是指字符, 字符是指计算机中使用的字母.数字.字和符号,包括:1.2.3.A.B.C.~!·#¥%---*()--+等等.不同的编码格式下汉字的字节是不同的,比如GBK中是 ...
- 如何设置mysql字符集支持utf-8 和gbk_mysql建表的时候设置表里面的字段的字符集是utf-8要怎么设置?默认建好后我去mysql里看字符集都是gbk...
展开全部 1.建表时指定字符集utf-8: CREATE TABLE 表名 ( `id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMAR ...
- 字符编码的故事(ASCII ISO GBK GB2312 UTF-8)
转载自:http://yuncode.net/article/a_520afe25b065d13 另有一篇对"UTF-8 GBK UTF8 GB2312 之间的区别和关系"描述比较 ...
- android gb2312 utf-8,不同编码页面之间用form传值出现乱码问题解决方案 utf-8 到 gb2312...
相信有人也曾遇到过这种问题,今天将这个问题稍作整理发布出来. 由于编码的问题传值出现乱码,一看到这样的情况,我们首先想到的是线面的两种解决办法: 方案一:在接收参数页面进行转码 (这是较为理想的解决 ...
- php 英文单词 数,【PHP】统计中英文单词数(GB2312/UTF-8编码)
英文单词的统计可以直接用php原生的函数str_word_count来进行统计.但这个函数对于中文汉字显得无能为力,无法准确统计到汉字个数. 解决办法是根据汉字的编码规则,自己来实现中文汉字数统计和中 ...
- ANSI/UTF-8/UCS2(UTF-16),以及回车换行
最近遇到一个linux 平台上invisible character (0x1d)引起的数据装载失败问题,正好借此机会整理一下字符编码的相关知识. 回车/换行: ================= 顾 ...
最新文章
- c#中结构与类的区别
- 某口腔app发现了不友善词汇(f*ckMobile)
- PAT A1030 动态规划
- [pasecactf_2019]tornado_casino
- 先进pid控制matlab仿真程序,先进PID控制Matlab仿真第4版-仿真程序-上交
- OpenCV学习笔记之改变图像的对比度和亮度
- java appender_log4j的Appenders配置方法
- js for foreach 快慢_js基本搜索算法实现与170万条数据下的性能测试
- 三刺激值计算公式_常用的车削、铣削和钻削计算公式,转走不谢
- 嫌学校 App烂,极客父母做了开源版本
- Java 常用对象-System类
- session和cookie详解
- Windows系统 修改 dns
- android系统相机的使用、及解决拍照闪退的问题
- 7月23日09点,上海,PMCamp的产品经理大会
- 功率谱和功率谱密度-MATLAB
- IEEE会议latex模板参考文献转为bibitem
- 从PHP 5到PHP 7性能全评测(含未发布的JIT版PHP 8对比)
- 你想过吗,为什么说面向对象最符合人的思维?
- matlab控制系统仿真论文,基于MATLAB的过程控制系统仿真毕业设计论文.doc
热门文章
- SAP Spartacus autofocus directive,如何锁住使用了directive的元素本身?
- SAP Spartacus store里引用的library是如何编译出来的
- SAP Spartacus如何创建自定义route页面
- SAP Commerce(原Hybris)的订单处理框架和SAP CRM One Order框架
- Angular self study 3 - data binding
- How is JerryMaster.view.xml being loaded in WebIDE local test environment
- Opportunity在Fiori cloud system上编辑之后超时的根源分析
- SAP CRM Distribution Chain数据模型
- SAP Spartacus organization unit里org list的focus实现问题
- 语义化版本(semantic versioning)机制里的一些范围标识符