GB2312编码表(全)-Java程序打印

不多说,需要了解GB2312编码表的组织方式的友友请转百度,下面直接上代码:

package com.zhangyanjie;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;

/**
 * 
 * 类描述:用于打印GB2312编码表
 * 作者: 贝贝
 * 创建日期:2019年8月21日
 * 修改人:
 * 修改日期:
 * 修改内容:
 * 版本号: 1.0.0
 */
public class printGB2312 {
	// 目标输出文件
	public static String fileName="C:\\Users\\Administrator\\Desktop\\GB2312全字符表(如出现乱码请使用GB2312编码打开文件).txt";
	// 使用的编码
	public static String charset="GB2312";
	
	public static void main(String[] args) throws IOException {
		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(fileName)));
		
		bos.write("\r\r说明,共有94个区,前缀A1-FE,每区94个字符位置(最多可存储8836个字符):\r\r\r".getBytes(charset));
		
		
		// 打印特殊字符区
		bos.write("(01-09区,前缀A1-A9,每区94个字符位置)特殊字符区:\r".getBytes(charset));
		printTitle(bos);
		byte[] b = new byte[3];
		/*b[0] = (byte)0xA3;
		b[1] = (byte)0xFD;
		bos.write(b,0,2);*/
		for(int i=0xA1;i<=0xA9;i++){
			b[0] = (byte)i;
			bos.write(("\r"+Integer.toHexString(i).toUpperCase()+"\t").getBytes(charset));
			for(int j=0xA1;j<=0xFE;j++){
				b[1]=(byte)j;
				bos.write(b,0,2);
				if(j != 0xFE){
					bos.write(".\t".getBytes(charset));
				}
			}
		}
		
		bos.write("\r\r(10-15区,前缀AA-AF,共6个区,每区94个字符位置)未分配:\r".getBytes(charset));
		
		// 打印一级汉字区
		bos.write("\r\r(16-55区,前缀B0-D7,共40个区,每区94个字符位置)一级汉字区,按拼音排序:\r".getBytes(charset));
		printTitle(bos);
		for(int i=0xB0;i<=0xD7;i++){
			b[0] = (byte)i;
			bos.write(("\r"+Integer.toHexString(i).toUpperCase()+"\t").getBytes(charset));
			for(int j=0xA1;j<=0xFE;j++){
				b[1]=(byte)j;
				bos.write(b,0,2);
				if(j != 0xFE){
					bos.write(".\t".getBytes(charset));
				}
			}
		}
		
		// 打印二级汉字区
		bos.write("\r\r(56-87区,前缀D8-F7,共32个区,每区94个字符位置)二级汉字区,按笔画排序:\r".getBytes(charset));
		printTitle(bos);
		for(int i=0xD8;i<=0xF7;i++){
			b[0] = (byte)i;
			bos.write(("\r"+Integer.toHexString(i).toUpperCase()+"\t").getBytes(charset));
			for(int j=0xA1;j<=0xFE;j++){
				b[1]=(byte)j;
				bos.write(b,0,2);
				if(j != 0xFE){
					bos.write(".\t".getBytes(charset));
				}
			}
		}
		
		bos.write("\r\r(88-94区,前缀F8-FE,共7个区,每区94个字符位置)未分配:\r".getBytes(charset));
		
		bos.write("\r\r存储位置与区位码转化:存储位置=(区位码高位+0xA0)*0x100+(区位码低位+0xA0)\r".getBytes(charset));
		
		bos.close();
	}
	
	/**
	 * 
	 * 方法描述:打印标题
	 * @param os 字节流
	 * @throws UnsupportedEncodingException 不支持的字符集
	 * @throws IOException IO异常
	 */
	public static void printTitle(OutputStream os) throws UnsupportedEncodingException, IOException{
		os.write(("cd\tA1\tA2\tA3\tA4\tA5\tA6\tA7\tA8\tA9\tAA\tAB\tAC\tAD\tAE\tAF\t"
				+ "B0\tB1\tB2\tB3\tB4\tB5\tB6\tB7\tB8\tB9\tBA\tBB\tBC\tBD\tBE\tBF\t"
				+ "C0\tC1\tC2\tC3\tC4\tC5\tC6\tC7\tC8\tC9\tCA\tCB\tCC\tCD\tCE\tCF\t"
				+ "D0\tD1\tD2\tD3\tD4\tD5\tD6\tD7\tD8\tD9\tDA\tDB\tDC\tDD\tDE\tDF\t"
				+ "E0\tE1\tE2\tE3\tE4\tE5\tE6\tE7\tE8\tE9\tEA\tEB\tEC\tED\tEE\tEF\t"
				+ "F0\tF1\tF2\tF3\tF4\tF5\tF6\tF7\tF8\tF9\tFA\tFB\tFC\tFD\tFE").getBytes(charset));
	}
}

局部结果展示:

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Kirito

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值