`
cy0932313
  • 浏览: 9784 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

JAVA 区位码于汉字的互换

阅读更多
import java.io.UnsupportedEncodingException;

public class Test {
// 发代码之前先转段预备知识
//
// 计算机处理汉字信息的前提条件是对每个汉字进行编码,这些编码统称为汉字编码。汉字信息在系统内传送的过程就是汉字编码转换的过程。
// 汉字交换码:汉字信息处理系统之间或通信系统之间传输信息时,对每一个汉字所规定的统一编码,我国已指定汉字交换码的国家标准“信息交换用汉字编码字符集——基本集”,代号为GB
// 2312—80,又称为“国标码”。
// 国标码:所有汉字编码都应该遵循这一标准,汉字机内码的编码、汉字字库的设计、汉字输入码的转换、输出设备的汉字地址码等,都以此标准为基础。GB
// 2312—80就是国标码。该码规定:一个汉字用两个字节表示,每个字节只有7位,与ASCII码相似。
// 区位码:将GB
// 2312—80的全部字符集组成一个94×94的方阵,每一行称为一个“区”,编号为0l~94;每一列称为一个“位”,编号为0l~94,这样得到GB
// 2312—80的区位图,用区位图的位置来表示的汉字编码,称为区位码。
// 机内码:为了避免ASCII码和国标码同时使用时产生二义性问题,大部分汉字系统都采用将国标码每个字节高位置1作为汉字机内码。这样既解决了汉字机内码与西文机内码之间的二义性,又使汉字机内码与国标码具有极简单的对应关系。
// 汉字机内码、国标码和区位码三者之间的关系为:区位码(十进制)的两个字节分别转换为十六进制后加20H得到对应的国标码;机内码是汉字交换码(国标码)两个字节的最高位分别加1,即汉字交换码(国标码)的两个字节分别加80H得到对应的机内码;区位码(十进制)的两个字节分别转换为十六进制后加A0H得到对应的机内码。

public String bytes2HexString(byte b) {
return bytes2HexString(new byte[] { b });
}

// 汉字转换成区位码
public String bytes2HexString(byte[] b) {
String ret = "";
for (int i = 0; i < b.length; i++) {
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
ret += hex.toUpperCase();
}
return ret;
}

// 汉字转换成区位码
public String getString(String chinese) {
byte[] bs;
String s = "";
try {
bs = chinese.getBytes("GB2312");

for (int i = 0; i < bs.length; i++) {
int a = Integer.parseInt(bytes2HexString(bs[i]), 16);
s += (a - 0x80 - 0x20) + "";
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return s;
}

// 区位码转换成汉字
public String CodeToChinese(String code) {
String Chinese = "";
for (int i = 0; i < code.length(); i += 4) {
byte[] bytes = new byte[2];
String lowCode = code.substring(i, i + 2);
int tempLow = Integer.parseInt(lowCode);
tempLow += 160;
bytes[0] = (byte) tempLow;
String highCode = code.substring(i + 2, i + 4);
int tempHigh = Integer.parseInt(highCode);
tempHigh += 160;
bytes[1] = (byte) tempHigh;
String chara = new String(bytes);
Chinese += chara;
}
return Chinese;
}

// 测试
public static void main(String[] args) throws Exception {
String str = "创";
Test test = new Test();
String s = test.getString(str);
System.out.println(s);
String a = test.CodeToChinese(s);
System.out.println(a);
}

}
分享到:
评论
2 楼 thebye85 2009-06-24  
改为String chara = new String(bytes,"GB2312");就可以了
1 楼 thebye85 2009-06-23  
区位码转换成汉字,好像不行

相关推荐

    区位码与汉字转换器(实现汉字与区位码的相互转换)

    现在的考试很多,公务员考试,职称等级考试等都需要用区位码填写考生的相关信息。为了让考生尽快查到自己信息的区位码,特编写本程序,欢迎下载使用与批评建议!

    汉字区位码、汉字区位码、汉字区位码

    汉字区位码广泛应用于汉字输入法、汉字字库管理以及汉字信息处理等领域。例如,在一些早期的DOS环境下,用户可以通过输入相应的区位码来直接选择所需的汉字进行打印或显示。此外,许多专业的文字处理软件也会提供...

    汉字区位码。汉字区位码

    掌握汉字区位码的知识,有助于更好地理解计算机是如何处理汉字的,也能够在某些特定场合下提供帮助,比如在对古旧文档进行数字化处理时,可能会涉及到区位码的应用。此外,汉字区位码本身也承载着一段重要的计算机...

    汉字区位码查询系统_200811584832

    汉字区位码查询系统是一款专为用户设计的实用工具,主要功能是帮助用户快速查找和了解汉字的区位码信息。在计算机处理汉字时,区位码是一种重要的编码方式,它由两个字节组成,分别代表汉字在字符集中的位置。这个...

    第1关:汉字国标码转区位码实验.txt

    虽然文档的具体内容似乎更多地关注于电路设计工具Logisim中的组件配置,但我们仍可以从这些信息出发,探讨与汉字编码、国标码、区位码以及其实验原理相关的知识点。 ### 汉字国标码 汉字国标码(GB2312)是中国...

    区位码查询 区位码查询

    区位码查询是一种在计算机汉字编码系统中查找汉字的方法,主要应用于早期的计算机系统和一些特定的输入输出设备。在中文信息处理中,区位码起着至关重要的作用,因为它为每个汉字提供了一个独一无二的双字节编码。...

    汉字 区位码 汉字姓名区位码

    汉字姓名区位码 可以找出汉字对应的区位码 好多地方用得到

    汉字区位码查询汉字区位码查询

    查询汉字区位码查询汉字区位码查询汉字区位码查询汉字区位码查询汉字区位码查询汉字区位码查询汉字区位码

    汉字区位码国标码机内码

    "汉字区位码国标码机内码" 汉字区位码、国标码和机内码是计算机中文信息...汉字区位码、国标码和机内码是计算机中文信息处理中的三个重要概念,它们之间可以相互转换,并且可以应用于实际问题的解决和汉字信息交换。

    区位码查询

    区位码是中文字符编码的一种方式,特别是在早期的计算机系统中广泛应用。它是国际标准汉字编码的基础,主要用于存储和检索汉字。区位码是由两个部分组成的,每个部分都是四位的十进制数字,总共八位,通常称为高位区...

    汉字区位码(HZQUM)

    这种编码方式便于用户快速查找到所需汉字的区位码,并将其应用于各种需要填写汉字信息的应用场景中,比如填涂信息卡等。 #### 表格内容解析 表格中的每一行代表一个汉字及其对应的区位码。例如: - “啊”字的...

    汉字与区位码互转

    汉字是中文字符的主要表示方式,而在计算机中存储和处理汉字时,我们通常会涉及到编码问题...然而,理解区位码的概念有助于我们了解汉字编码的历史和发展,也能帮助我们在处理旧的中文系统或文档时更好地理解底层机制。

    汉字区位码查询软件,绿色软件,小巧实用,方便快捷的查询汉字区位码

    早期的中文操作系统和文本处理软件主要使用区位码进行汉字编码,每个汉字对应一个特定的区号和位号,区号范围为16个区(01-16),位号范围为94个位(01-94),因此总共有16×94=1552个不同的区位码。随着Unicode编码...

    区位码查询软件,绝对好用!

    区位码查询软件是一款在IT领域中非常实用的工具,主要服务于那些需要处理中文字符编码问题的用户。在计算机科学中,区位码是早期汉字编码系统的一种,它将每个汉字与一个特定的二维坐标对应起来,这个坐标系统通常由...

    区位码与字符的相互转换以及区位码对照表

    区位码是中文字符编码的一种方式,特别是在早期的计算机系统中广泛应用。它是通过两个字节,每个字节代表一个区,共组成一个四位的十进制数,来表示汉字的位置。这种编码方式对于存储和处理中文字符至关重要,因为它...

    汉字区位码表(共收汉字6763个)

    汉字区位码共收汉字6763个,分成两级。第一级汉字3755个,置于16区至55区;第二级汉字3008个,置于56区至87区。 第一级汉字按汉语拼音字母顺序排列,同音字以笔形顺序横、直、撇、点、抓为序;起笔相同按第二笔顺序...

    汉字区位码查询器

    汉字区位码查询器是一款非常实用的工具,主要用于帮助用户快速查找并理解汉字的区位...通过使用"汉字区位码查询器"这样的工具,我们可以更好地理解早期的汉字信息化技术,同时也为深入学习和研究中文信息处理打下基础。

    易语言汉字区位码列表

    1. **汉字区位码**:每个汉字都有一个对应的区位码,它是由一个区号(01-94)和一个位号(01-94)组成的四位十进制数,例如“中”的区位码是2530。在易语言中,处理区位码可以帮助我们进行汉字的查找、转换和显示。 ...

Global site tag (gtag.js) - Google Analytics