GB2312编码

在区码和位码的基础上,分别加上0XA0的偏移,便是GB2312编码;

我们制作ASCII字库时,一般只做可以显示出来的字符字模,前面命令型的ASCII字符,我们不做字模,即从“空格开始”,ASCII表对应0x20,所以当我们使用PCtoLcd的16X16选项制作字库时,(注意英文的实际占用的是8X16,要比汉字小半个字宽),所以,如果根据标准ASCII表制作字库时,可以根据字符的汉字相对于“空格”的偏移找到对应字库中的偏移地址,找到对应的字模;如找到"A"对应的字模:Address = ("A" - " ") X (8 X 16 )/8,从这个偏移地址向后连续取16个字节,即是"A"的所有字模 。

GB2312是在区位码的地址基础上分别偏移0xA0,每个区有94个汉字;每个汉字占用的字节为(16X16)/8=32个字节;汉字字库的第一个字符也是“空格”,但这个是全角的和ASCII的不一样;

该空格的区位码是“0101”,所以任意一个汉字的偏移地址公式是,Address= ( (CodeH-0x30-1)*94+(CodeL-0x30-1) )*( 16*16 )/8;CodeH是GB2312的第一个字节,CodeL是GB2312的第二个字节,减一 是因为区位码是从第一区开始的,而字模数组表是从0开始的;  (以上的计算均是按16*16取模时计算的)

当我使用单片机编程工具写程序时,编译的时候,编译器会根据我们的选择(如MDK)会自动将字符串转换成机内码即GB2312形式进行存储,所以我们可以根据GB2312与区位码的关系进行寻找地址偏移。

时间: 2024-11-05 04:48:04

GB2312编码的相关文章

Linux下将UTF8编码批量转换成GB2312编码的方法

Linux下将UTF8编码批量转换成GB2312编码的方法 在sqlplus中导入UTF8编码的sql脚本就会出现乱码错误,这时就需要将UTF8编码转换成GB2312编码,下面为大家介绍下在Linux下如何进行转换 UTF8编码和GB2312编码是有区别的,在sqlplus中导入UTF8编码的sql脚本就会出现乱码错误,这时就需要将UTF8编码转换 成GB2312编码,可是一个个的转换十分麻烦,下面小编就教你如何在Linux下将UTF8编码批量转换成GB2312编码. 背景 本人在使用oracl

做网站用UTF-8编码还是GB2312编码?

经常我们打开外国网站的时候出现乱码,又或者打开很多非英语的外国网站的时候,显示的都是口口口口口的字符, WordPress程序是用的UTF-8,很多cms用的是GB2312. ● 为什么有这么多编码? ● UTF-8和GB2312有什么区别? ● 我们在国内做网站是用UTF-8编码格式还是GB2312编码格式好? 一. 各种编码的来历 可能很多同学一直对字符的各种编码方式懵懵懂懂,根本搞不清为什么他们有这么多编码. ANSI编码 其实在很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合

C++转换unicode utf-8 gb2312编码

windows开发环境下用VC++6.0 对unicode .utf-8. gb2312 三种编码格式之间的转换方法: [cpp] view plaincopy #include <iostream> #include <string> #include <Windows.h> using namespace std; void unicodeToUTF8(const wstring &src, string& result) { int n = Wid

PHP iconv 解决utf-8和gb2312编码转换问题

终于皇天不负有心人,答案还是让我找到了. 网上的都是这样用的 代码如下: $content = iconv("utf-8","gb2312",$content); 这样做其实也对着了,看着确实是把utf-8转化为gb2312了,但是实际运行的话,往往都是以失败告终的,原因呢? 原因实际上也很简单,因为任何的函数都是执行错误的时候,同时很不幸的是iconv();就很终于出现错误.现在给你正确的答案. 真正的答案是这样的 复制代码 代码如下: $content = ic

JS:中文GB2312编码

今天开发遇到了个问题,有点纳闷.... 在ajax的时候要传递一个中文值,不管我在js中是否使用了encodeURI.encodeURIComponent编码,但是在后台request获取的值是始终是乱码. 出现这个问题的原因是,整个项目中的编码方式不一致导致的, 解决方案:1.就是修改整个项目的编码方式,但这个会影响其他文件. 2.单独的页面修改编码方式,修改response,request的编码方式. 3.将传递的中文编码,但是这样不一定能解决问题因为js提供的encodeURI.encod

UWP上可用的GB2312编码

大概是在WP8的时候,网上有一个WP8可用的GB2312编码的解决方法,就是那个DBCSCodePage. 但是由于UAP开始,微软删掉了GetManifestResourceStream,所以这东西也不能用了 我自己用了一个简单的URI代替了GetManifestResourceStream,最后发现这样这个DBSCodePage也能正常工作,所以这里贴出来给大家使用 ------------------------------------------ 下载地址: http://files.c

服务配置文件gb2312编码,使用SaltStack管理报错

Salt发布2014.7.0后,及时进行了更新,测试下来,在上一版本正常运行的操作,这一版本却出现报错.公司的好多服务由于历史原因,配置文件延续下来,使用的是gb2312编码,其中还有中文注释.在使用salt进行管理的时候,在Master端会报UnicodeDecodeError错误. 执行配置文件更新,并重启服务操作: salt 'zhaogb-202' state.sls update_conf.manager manager.sls是更新Manager服务配置文件的模板: ma_watch

记一次java生成csv文件乱码的解决过程 (GB2312编码)

系统:win7 (格式:中文(简体,中国)) 工具:Eclipse (默认编码utf-8) 服务两个:[restful接口]  和 [服务*** server]. 场景:[服务*** server]多次调用[restful接口],每次[restful接口]会返回一个生成好的csv文件内容.[服务*** server]将每次[restful接口]返回的csv内容保存成一个csv文件.并将生成的多个csv文件打包成一个zip压缩包. [restful接口]:根据一组数据生成csv文件 1. java

GB2312 编码

GB2312编码范围:A1A1-FEFE,其中汉字编码范围:B0A1-F7FE. GB2312编码是第一个汉字编码国家标准,由中国国家标准总局1980年发布,1981年5月1日开始使用.GB2312编码共收录汉字6763个,其中一级汉字3755个,二级汉字3008个.同时,GB2312编码收录了包括拉丁字母.希腊字母.日文平假名及片假名字母.俄语西里尔字母在内的682个全角字符. 分区表示 GB2312编码对所收录字符进行了“分区”处理,共94个区,每区含有94个位,共8836个码位.这种表示方