当前位置:   article > 正文

GB2312编码表(全)-Java程序打印_gb2312汉字编码表 for 打印机程序

gb2312汉字编码表 for 打印机程序

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

  1. package com.zhangyanjie;
  2. import java.io.BufferedOutputStream;
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.io.OutputStream;
  7. import java.io.UnsupportedEncodingException;
  8. /**
  9. *
  10. * 类描述:用于打印GB2312编码表
  11. * 作者: 贝贝
  12. * 创建日期:2019年8月21日
  13. * 修改人:
  14. * 修改日期:
  15. * 修改内容:
  16. * 版本号: 1.0.0
  17. */
  18. public class printGB2312 {
  19. // 目标输出文件
  20. public static String fileName="C:\\Users\\Administrator\\Desktop\\GB2312全字符表(如出现乱码请使用GB2312编码打开文件).txt";
  21. // 使用的编码
  22. public static String charset="GB2312";
  23. public static void main(String[] args) throws IOException {
  24. BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(fileName)));
  25. bos.write("\r\r说明,共有94个区,前缀A1-FE,每区94个字符位置(最多可存储8836个字符):\r\r\r".getBytes(charset));
  26. // 打印特殊字符区
  27. bos.write("(01-09区,前缀A1-A9,每区94个字符位置)特殊字符区:\r".getBytes(charset));
  28. printTitle(bos);
  29. byte[] b = new byte[3];
  30. /*b[0] = (byte)0xA3;
  31. b[1] = (byte)0xFD;
  32. bos.write(b,0,2);*/
  33. for(int i=0xA1;i<=0xA9;i++){
  34. b[0] = (byte)i;
  35. bos.write(("\r"+Integer.toHexString(i).toUpperCase()+"\t").getBytes(charset));
  36. for(int j=0xA1;j<=0xFE;j++){
  37. b[1]=(byte)j;
  38. bos.write(b,0,2);
  39. if(j != 0xFE){
  40. bos.write(".\t".getBytes(charset));
  41. }
  42. }
  43. }
  44. bos.write("\r\r(10-15区,前缀AA-AF,共6个区,每区94个字符位置)未分配:\r".getBytes(charset));
  45. // 打印一级汉字区
  46. bos.write("\r\r(16-55区,前缀B0-D7,共40个区,每区94个字符位置)一级汉字区,按拼音排序:\r".getBytes(charset));
  47. printTitle(bos);
  48. for(int i=0xB0;i<=0xD7;i++){
  49. b[0] = (byte)i;
  50. bos.write(("\r"+Integer.toHexString(i).toUpperCase()+"\t").getBytes(charset));
  51. for(int j=0xA1;j<=0xFE;j++){
  52. b[1]=(byte)j;
  53. bos.write(b,0,2);
  54. if(j != 0xFE){
  55. bos.write(".\t".getBytes(charset));
  56. }
  57. }
  58. }
  59. // 打印二级汉字区
  60. bos.write("\r\r(56-87区,前缀D8-F7,共32个区,每区94个字符位置)二级汉字区,按笔画排序:\r".getBytes(charset));
  61. printTitle(bos);
  62. for(int i=0xD8;i<=0xF7;i++){
  63. b[0] = (byte)i;
  64. bos.write(("\r"+Integer.toHexString(i).toUpperCase()+"\t").getBytes(charset));
  65. for(int j=0xA1;j<=0xFE;j++){
  66. b[1]=(byte)j;
  67. bos.write(b,0,2);
  68. if(j != 0xFE){
  69. bos.write(".\t".getBytes(charset));
  70. }
  71. }
  72. }
  73. bos.write("\r\r(88-94区,前缀F8-FE,共7个区,每区94个字符位置)未分配:\r".getBytes(charset));
  74. bos.write("\r\r存储位置与区位码转化:存储位置=(区位码高位+0xA0)*0x100+(区位码低位+0xA0)\r".getBytes(charset));
  75. bos.close();
  76. }
  77. /**
  78. *
  79. * 方法描述:打印标题
  80. * @param os 字节流
  81. * @throws UnsupportedEncodingException 不支持的字符集
  82. * @throws IOException IO异常
  83. */
  84. public static void printTitle(OutputStream os) throws UnsupportedEncodingException, IOException{
  85. os.write(("cd\tA1\tA2\tA3\tA4\tA5\tA6\tA7\tA8\tA9\tAA\tAB\tAC\tAD\tAE\tAF\t"
  86. + "B0\tB1\tB2\tB3\tB4\tB5\tB6\tB7\tB8\tB9\tBA\tBB\tBC\tBD\tBE\tBF\t"
  87. + "C0\tC1\tC2\tC3\tC4\tC5\tC6\tC7\tC8\tC9\tCA\tCB\tCC\tCD\tCE\tCF\t"
  88. + "D0\tD1\tD2\tD3\tD4\tD5\tD6\tD7\tD8\tD9\tDA\tDB\tDC\tDD\tDE\tDF\t"
  89. + "E0\tE1\tE2\tE3\tE4\tE5\tE6\tE7\tE8\tE9\tEA\tEB\tEC\tED\tEE\tEF\t"
  90. + "F0\tF1\tF2\tF3\tF4\tF5\tF6\tF7\tF8\tF9\tFA\tFB\tFC\tFD\tFE").getBytes(charset));
  91. }
  92. }

局部结果展示:

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号