① 计算机中的内码是什么
我们常说汉字的"内码"与"外码"。
内码是汉字在计算机内部存储,处理和传输用的信息编码。它必须与ASCII码兼容但又不能冲突。
所以把国标码两个字节的最高位置'1',以区别于西文,这就是内码。汉字的输入码称为"外码"。输入码即指我们输入汉字时使用的编码。常见的外码分为数字编码(如区位码),拼音编码和字形编码(如五笔)。
再说区位码,"啊"的区位码是1601,写成16进制是0x10,0x01。这和计算机广泛使用的ASCII编码冲突。为了兼容00-7f的 ASCII编码,我们在区位码的高、低字节上分别加上A0。这样"啊"的编码就成为B0A1。我们将加过两个A0的编码也称为GB2312编码,虽然 GB2312的原文根本没提到这一点。
内码是指操作系统内部的字符编码。早期操作系统的内码是与语言相关的.现在的Windows在内部统一使用Unicode,然后用代码页适应各种语言,"内码"的概念就比较模糊了。我们一般将缺省代码页指定的编码说成是内码。内码这个词汇,并没有什么官方的定义。代码页也只是微软的一种习惯叫法。作为程序员,我们只要知道它们是什么东西,没有必要过多地考证这些名词。
所谓代码页(code page)就是针对一种语言文字的字符编码。例如GBK的code page是CP936,BIG5的code page是CP950,GB2312的code page是CP20936。
Windows中有缺省代码页的概念,即缺省用什么编码来解释字符。例如Windows的记事本打开了一个文本文件,里面的内容是字节流:BA、BA、 D7、D6。Windows应该去怎么解释它呢?是按照Unicode编码解释、还是按照GBK解释、还是按照BIG5解释,还是按照ISO8859-1 去解释?如果按GBK去解释,就会得到"汉字"两个字。按照其它编码解释,可能找不到对应的字符,也可能找到错误的字符。所谓"错误"是指与文本作者的本意不符,这时就产生了乱码。
答案是Windows按照当前的缺省代码页去解释文本文件里的字节流。缺省代码页可以通过控制面板的区域选项设置。记事本的另存为中有一项ANSI,其实就是按照缺省代码页的编码方法保存。
Windows的内码是Unicode,它在技术上可以同时支持多个代码页。只要文件能说明自己使用什么编码,用户又安装了对应的代码页,Windows就能正确显示,例如在HTML文件中就可以指定charset。
有的HTML文件作者,特别是英文作者,认为世界上所有人都使用英文,在文件中不指定charset。如果他使用了0x80-0xff之间的字符,中文Windows又按照缺省的GBK去解释,就会出现乱码。这时只要在这个html文件中加上指定charset的语句,例如:
<meta http-equiv="Content-Type" content="text/html; charset=ISO8859-1">
如果原作者使用的代码页和ISO8859-1兼容,就不会出现乱码了
② 什么是区内码,机内码,国标码
1.区位码(十进制)转换成区位码(十六进制)。
这里要把前两个位换成十六进制,然后后两位换成十六进制。
例如,某汉字的区位码是5448,这样把54转换为16进制数36;再把位码48转换为16进制数为30,得到十六进制数3630。
2.国际码=区位码(十六进制)+2020H
例如,3630H+2020H=5050H
得到国标码GB2312
3.汉字机内码=国际码+8080H
机内码就是5050H+8080H=D0D0H
ASCII码是八位的一个字节
最高位为0,这样可以区分和汉字编码的区别。
Unicode是欧洲提出来的编码。
如果大段的数据包中的字节是大于A0A0H的双字节信息,可以初步认定为汉字内容编码。
说明一下,汉字你在数据包中只能获得机内码。区位码是输入码,不在计算机当中的,呵呵
③ 什么是内码
内码是指整机汉字系统中使用的二进制字符编码,是沟通输入、输出与系统平台之间的交换码,通过内码可以达到通用和高效率传输文本的目的。比如MS Word中所存储和调用的就是内码而非图形文字。英文ASCII 字符采用一个字节的内码表示,中文字符如国标字符集中,GB2312、GB12345、GB13000皆用双字节内码,GB18030(27,533汉字)双字节内码汉字为20,902个,其余6,631个汉字用四字节内码。
④ 一汉字国标码是5E38H,其内码是什么,怎么算
区位码、国标码与机内码的转换关系 方法: (1)区位码先转换成十六进制数表示 (2)(区位码的十六进制表示)+2020H=国标码; (3)国标码+8080H=机内码 举例:以汉字“大”为例,“大”字的区内码为2083 解:1、区号为20,位号为83 2、将区位...
⑤ 汉字内码怎么算
汉字内码=国标码+8080h
所以 内码=DEC8h 选择B
⑥ 机内码、国际码、区位码之间如何换算
一般换算全部用十六进制。机内码、国际码是十六进制的,区位码是十进制的。具体换算步骤:(H表示十六进制,D表示十进制)
1、将四位数的区位码分为两部分,两位数一组。
2、将这两个两位数换算为十六进制,运用公式进行计算。
国际码=区位码(十六进制)+2020H
机内码=国际码+8080H
例如:某汉字的区位码是2534。则25D=19H,34D=22H
则国际码=1922H+2020H=3952H,机内码=3952H+8080H=B9D2H
(6)内码扩展阅读
区位码、国标码与机内码都是汉字的编码形式,它们之间有着千丝万缕的联系,但其间的区别也是不容忽视的。
国标码是基础,指国家标准汉字编码。即《信息交换用汉字编码字符集(基本集)》,简称GB-2312。该字符集有汉字6763个。设有94个区,每个区94个位。每个汉字有一个固定的区位。
区位码与国标码的区别在于,在GB-2312中预留了一些空位,便于补充和扩展,经过扩展的区位码字符数量及范围就超过了GB-2312。而且台湾、香港、及日韩也是用区位码的,但其区位号与大陆用的就完全不相同。
机内码是为了避免ASCII码和国标码同时使用时产生两义性问题,大部分汉字系统都采用将国标码每个字节高位置1作为汉字机内码。这样既解决了汉字机内码与西文机内码之间的二义性,又使汉字机内码与国标码具有极简单的对应关系。
⑦ 5e38h的内码是多少
国标码为5E38,它的内码是DEB8H。计算方式如下:
第一种:
1、5E38H是16进制表示的,需要先转化为10进制再转化为2进制。
转化为10进制的公式是5*(16的3次方)+E*(16的2次方)+3*(16的1次方)+8*(16的0次方)=24376。
2、然后将24376转化为2进制,是11111110 0111000。
在汉字的国标码的这两个字节的最高位分别置1即得到该汉字内码。
所以内码是11111110 1111000=DEB8H。
第二种:
国标码+8080H=机内码
5E38+8080 = ?
5+8=13,D E+0=E 3+8=11,B 8+0=8
最后加H表示这是十六进制数,所以内码:DEB8H。
(7)内码扩展阅读:
由于历史、地区原因,有时一种文字会出现多种编码方案,特别是汉字。
由于不同于系统内码的字符不能在该系统中正常显示,必须要进行字符的内码转换,即将非系统内码的字符转换为系统可以识别的内码字符。
1、机外码就是你外界输入的字符,这个字符输入后会有一个相对应的区位码(就是一个94*94的棋盘格格,你输入的汉子会对应里面的一个格子,行+列就是我们这里的区+位)。
2、区位码经过换算可以变成国标码(所以区位码→国标码这一步只是表示转换下而已)。
3、国标码再经过换算可以变成机内码(一般是16进制数表示)。
参考资料来源:网络 — 内码
⑧ 内码如何表示汉字
我来帮你吧:
区位码、国标码与机内码的转换关系
方法:
(1)区位码先转换成十六进制数表示
(2)(区位码的十六进制表示)+2020h=国标码;
(3)国标码+8080h=机内码
举例:以汉字“大”为例,“大”字的区内码为2083
解:1、区号为20,位号为83
2、将区位号2083转换为十六进制表示为1453h
3、1453h+2020h=3473h,得到国标码3473h
4、3473h+8080h=b4f3h,得到机内码为b4f3h
三、小结:
字符编码的两种表示方式:ascii(字符的表示);gb2312(国标码,汉字编码)
⑨ 内码外码什么意思呀
内码是指整机汉字系统中使用的二进制字符编码,是沟通输入、输出与系统平台之间的交换码,通过内码可以达到通用和高效率传输文本的目的。比如MS Word中所存储和调用的就是内码而非图形文字。英文ASCII 字符采用一个字节的内码表示,中文字符如国标字符集中,GB2312、GB12345、GB13000皆用双字节内码,GB18030(27,533汉字)双字节内码汉字为20,902个,其余6,631个汉字用四字节内码。
什么是外码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码基本关系R称为参照关系(ReferencingRelation)基本关系S称为被参照关系(ReferencedRelation)或目标关系(Target Relation)。