一个将BIG5编码转换为GB2312编码的类

RT,就是利用BIG5与GB2312码的对照表,代码本身很容易,只是找对照表花了我很长时间.

java 代码
  1. import  java.io.*;   
  2. /**  
  3. *实现由BIG5编码到GB2312编码转换的工具类  
  4. *@author: Eastsun  
  5. *@version: 2007.2.24 v0.5  
  6. */   
  7. public   class  Big2Gb{   
  8.      private   static   final  String tabFile = "bg-gb.tab" ;   
  9.      private   static   byte [] data;   
  10.      static {   
  11.          try {   
  12.             FileInputStream fis = new  FileInputStream(tabFile);   
  13.              int  len =fis.available();   
  14.             data = new   byte [len];   
  15.             fis.read(data);   
  16.             fis.close();   
  17.         } catch (Exception ex){   
  18.             ex.printStackTrace();   
  19.             System.exit( 1 );   
  20.         }   
  21.     }   
  22.        
  23.      /**  
  24.     *取得BIG5汉字big在data中的偏移  
  25.     */   
  26.      private   static   int  indexOf( int  big){   
  27.          int  high =(big>>> 8 )& 0xff ;   
  28.          int  low  =big& 0xff ;   
  29.            
  30.         high -=  0xa1 ;   
  31.          if (low<= 0x7e ) low -=  0x40 ;   
  32.          else           low -= ( 0xa1  - 0x7e  - 1 ) + 0x40 ;   
  33.            
  34.          return   2 *(high* 157 +low);   
  35.     }   
  36.      /**  
  37.     *将保存在bs数字中的big5编码的字符串数据转换成gb2312编码的数据  
  38.     *注意:此方法将更改原先存储的数据  
  39.     *@param bs 需要转换的以big5编码的字符串数据  
  40.     *@return bs 经过转换的数据,保存在参数中的byte数组中  
  41.     */   
  42.      public   static   byte [] translateBig5ToGb( byte [] bs){   
  43.          int  index = 0 ;   
  44.          while (index<bs.length){   
  45.              int  high =bs[index]& 0xff ;   
  46.              if (high>= 0xa1 &&high<= 0xfe ){   
  47.                 index ++;   
  48.                  if (index>=bs.length)  break ;   
  49.                  int  low =bs[index]& 0xff ;   
  50.                  if (low< 0x40 ||low> 0xfe )  continue ;   
  51.                  if (low> 0x7e &&low< 0xa1 )  continue ;   
  52.                  int  offset =indexOf((high<< 8 )|low);   
  53.                 bs[index- 1 ] =data[offset];   
  54.                 bs[index  ] =data[offset+ 1 ];   
  55.                 index++;   
  56.             }   
  57.              else  index++;   
  58.         }   
  59.          return  bs;   
  60.     }   
  61.        
  62.      public   static  String translateBig5ToGb(String big){   
  63.         String result = null ;   
  64.          try {   
  65.              byte [] bs =big.getBytes( "big5" );   
  66.             bs =translateBig5ToGb(bs);   
  67.             result = new  String(bs, "gb2312" );   
  68.         } catch (Exception e){   
  69.         }   
  70.          return  result;   
  71.     }   
  72.        
  73. }  
ISCC练习题MISC 解题技巧:看最后括号应该是IceCTF,先用了一键解码啥也没有啊,不对不对!好像是字符频率统计,转换网站:http://quipqiup.com/有人给你发了一串信息,你能解开吗? 阅读详情

相关推荐

案例分析|一篇文章带你看懂养鸡场智慧管理系统

养鸡场智慧管理系统是为了满足现代化养鸡业对精细化管理的需求而设计的一款专业软件。随着科技的发展和农业产业的升级,传统的手工记录和管理方式已无法满足高效、准确和实时的数据跟踪需求。本软件旨在通过集成各种功能模块,帮助养鸡场主实现从鸡苗孵化、饲养管理、饲料控制到销售结算等全链条的智能化操作。该系统的核心目标是提升养鸡场的运营效率和盈利能力,通过自动化数据处理,减少人工误差,节省时间和精力。例如,孵化报表和记录模块可以帮助管理者实时监控孵化过程,及时调整策略;

muyu2980的专栏 930

BIG5码转换为GB2312码的方法

繁体字一般都使用BIG5编码,而简体中文一般都使用GB2312编码,要将BIG5编码的繁体字转换为GB2312编码的简体字时,就要经过一步转换过程,过程如下 1、生成常用繁体字的BIG5码表,用如下c代码可生成BIG5码表文件 #include #include int main(){ FILE * codefile; int i, j; codefile = fopen(

dengchendeng的专栏 9638

手把手教你用C语言实现GNSS卫星方位角计算(附RTKLIB风格代码解析)

本文详细介绍了如何使用C语言实现GNSS卫星方位角计算,包括从地固坐标系到站心坐标系的转换链条。通过RTKLIB风格的代码解析,展示了XYZ到ENU坐标转换的核心原理和C语言实现框架,帮助开发者掌握卫星方位角和高度角的计算技巧,适用于GNSS观测数据质量分析和精密定位算法开发。

weixin_30699915的博客 365

简中繁中互相转换gbk big5

如何通过程序自动转换简中到繁中呢

nwao7890的专栏 2380

Eclipse 数据空间组件(EDC)项目介绍

在当今数字经济的背景下,数据成为了新的“石油”。但与石油不同的是,数据可以无限共享且再生。然而,如何在保持数据主权的前提下实现高效、安全的数据共享,成为了企业和组织面临的主要挑战。这时,**Eclipse 数据空间组件(Eclipse Dataspace Components, EDC)**应运而生,它为企业在多方参与的数据交换中提供了一个标准化、可扩展的解决方案。数据空间不仅是一个多组织间的数据共享协议,还是一套支撑这些协议运行的技术基础设施。

m0_74331272的博客 4602

二维otsu算法python_OpenCV-Python系列之OTSU算法

上一个教程中,我们谈到了关于图像二值化的两种方法,一种是固定阈值法,另一种是自适应阈值法,总的来说,自适应阈值法在某些方面要由于固定阈值法,但还没完,这次我们将隆重介绍我们的重量级选手,也就是OTSU算法(又称为大津算法和最大类间方差法)。最大类间方差法是1979年由日本学者大津提出的,是一种自适应阈值确定的方法,又叫大津法,简称OTSU,是一种基于全局的二值化算法,它是根据图像的灰度特性,将图像...

weixin_28834169的博客 1426

GB BIG5 转码原理全解析

GB BIG5 转码原理全解析 原文来源:leilycn.blog.163.com 已失效,在这里重新发布 港台Windows所使用的语言代码是Big5编码,而大陆内地的Windows是国标(GB),所以如果那些程序文字语言不是按照Unicode编码设计的,到GB的windows就会出现乱码问题,但操作系统内含多套语言方案,会自动识别,所以不在此讨论。 这里不叙述BIG5码和GB码的区别,以及编码规则,汉字库等。主要论述在我们大部分中国人使用的GB简体中文操作系统上,BIG5乱码原因、内码转换软件的转

4905

图解B+树的插入过程

B+ 树在现代数据库中很常见,如果我们了解它,在工作中可能对性能优化会有更好的帮助! 最近我一直在思考 B+ 树的高度是由什么决定的。知道我了解了 B+ 树的插入过程,才有一种恍然大悟的感觉! 网上的一些资料杂乱无章,不同的数据库可能还有对 B+ 树有不同的实现。但是万变不离其宗,B+ 树的定义,大致如下所示: 总结一下,B+ 树有下面 5 个重要的特点。 B+ 树包含 2 种类型的结点: 内部结点(也称索引结点)和叶子结点。 根结点本身即可以是内部结点,也可以是叶子结点。 根结点的关键字个数最

愿君出走半生,归来时仍是少年 2135

BIG5转换为Unicode编码表(附算法)

备用: #ifndef BIG5TOUNICODE_TABLE #define BIG5TOUNICODE_TABLE unsigned int BIG5_Unicode[][2] = { 0x8140,0xEEB8, 0x8141,0xEEB9, 0x8142,0xEEBA, 0x8143,0xEEBB, 0x8144,0xEEBC, 0x8145,0xEEBD, 0x81

混迹于移动互联网和手机行业 2万+

Xilinx FPGA资源解析与使用系列——Transceiver(六)关键时钟梳理之TXOUTCLK和RXOUTCLK

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Xilinx FPGA资源解析与使用系列——Transceiver(六)transceiver内部关键时钟梳理之TXOUTCLK和RXOUTCLK前言TXOUTCLKRXOUTCLK 前言 前面我们已经研读了 transceiver的参考时钟 和复位的相关内容。 但是随着内容的深入,越来越多的信号出现在我的面前。 例如 TXOUTCLK、TXUSERCLK、TXUSERCLK2 RXOUTCLK、RXUSERCLK、RXUSERCLK2

gzy0506的博客 8090

PCB Layout工程师核心能力与实战进阶指南

PCB Layout是电子硬件从原理图到物理实现的关键环节,本质是将电路逻辑转化为受电磁场、热力学与制造工艺约束的三维空间结构。其设计质量直接决定信号完整性(SI)、电源完整性(PI)和电磁兼容性(EMC)等核心性能指标。随着高速接口(如PCIe Gen5、USB3.2)、高密度封装(BGA微间距、HDI)及车规/工业级可靠性要求提升,Layout已从‘连线’演进为多目标协同优化的系统工程。掌握Altium Designer等EDA工具、理解叠层设计与DFM规则、具备SI/PI仿真意识,并能贯通芯片Data

weixin_42589700的博客 87

繁体与简体转换类封装

class Font { private $utf8_gb2312; private $utf8_big5; public function __construct() { $this->utf8_gb2312 = "万与丑专业丛东丝丢两严丧个丬丰临为丽举么义乌乐乔习乡书买乱争于亏云亘亚产亩亲亵亸亿仅从仑仓仪们价众优伙会伛伞伟传伤伥伦伧伪伫...

qq_38829280的博客 1467

Spring AI Alibaba实战训练营-16 NL2SQL (自然语言转 SQL)应用开发指南

本文介绍了一个基于AI的智能BI应用开发项目,主要实现自然语言转SQL(NL2SQL)功能,包含对话模块、MCP模块、向量数据管理模块。项目采用Spring AI Alibaba框架,集成通义千问大模型,支持内存向量库和AnalyticDB向量数据库两种存储方案。重点展示了chat模块的三个控制器实现:AnalyticNl2SqlController用于生产环境,SimpleChatController适用于开发测试,Nl2sqlForGraphController支持基于图的复杂对话流程。系统通过将业务知

program哲学 1589

java 二进制转big5_java big5到gb2312的编码转换

将保存在bs数字中的big5编码的字符串数据转换成gb2312编码的数据 此方法将更改原先存储的数据 需要转换的以big5编码的字符串数据package com.Big5ToUTF8;import java.io.*;public class Big5Tran {private static final String tabFile ="bg-gb.tab";private static byte...

weixin_39788256的博客 174

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

PHP 实现中文简体转换繁体程序

<?php class utf8_chinese { private $utf8_gb2312; private $utf8_big5; private $data; function __construct($data){ $this->utf8_gb2312 = $data['sim']; $this

psz619的博客 2516

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

gb2big php,PHP编码变换类3

PHP编码转换类3PHP编码转换类请下载附件,包含文件:?converter.class.php/tables/BIG2GB.Table/tables/BIG2UNI.Table/tables/big5-unicode.table/tables/GB2BIG.Table/tables/gb-big5.table/tables/GBK2PY.Table/tables/GBK2UNI.Table/ta...

weixin_35639230的博客 136

php实现繁简转换

class Big5_GB2312_Transfer{ private $utf8_gb2312; private $utf8_big5; public function __construct(){ $this->utf8_gb2312 = file_get_contents('./gb2312.map'); ...

weixin_34343000的博客 239

php中转码的函数,php转码函数

无详细内容 无 iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8 class ChineseTransfer {public static function big5_gb2312($in) {$in = iconv('UTF-8', 'BIG5', $in);$in = iconv('BIG5', 'GB2312', $in);$ou...

weixin_34471637的博客 383

php 实现中文简体转换繁体程序

具体程序如下: <?php class utf8_chinese { private $utf8_gb2312; private $utf8_big5; private $data; public function __construct($data){ $this->utf8_gb2312 = $data['sim']; $thi

小白 1879

php汉字utf8编码转换,PHP UTF8编码内的繁简转换类

曾找过一个JS版的,但是到了UTF8编码里不能用,于是就产生了自已写一个的念头。其实我这个代码的实现原理很简单的,只是一个替换字符集的过程,相信大部份人都可以写得出来。以下是代码,不知道有没有bug,大家如果在使用上有问题,可以提出来//class utf8_chinese{private $utf8_gb2312;private $utf8_big5;public function __cons...

weixin_39945816的博客 637

C#简繁体转换方法

<br /><br />添加 Microsoft Visual Basic.NET Runtime 引用。using System;<br />using System.IO;<br />using System.Text;<br />using Microsoft.VisualBasic;<br /><br />namespace Rainsoft.Text<br />{<br />  /// <summary><br />  /// 字符串编码转换类<br />  /// </summary><br

jxufewbt的专栏 2064

汉字简繁体转换代码

<br />unit ChineseCharactersConvert; interface uses Classes, Windows; type TGBBIG5Convert = class(TObject) public class function BIG5ToGB(BIG5Str : String): AnsiString; class function GBToBIG5(GBStr : String): AnsiString; class f

编程资料收集与共享交流 1378

繁简体(GBBig5)字符串转化的JAVA方式实现

Big5)字符串转化的JAVA方式实现" href="http://pingyuan.itpub.net/entry/19" rel="bookmark" snap_preview_added="no">繁简体(GB&lt...

ciweiboq5116的博客 293

簡繁体转换的class

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 260

php简体转繁体

<?php header("content-type:text/html;charset=utf-8"); class utf8_chinese { private $utf8_gb2312; private $utf8_big5; private $data; public function __construct($data)

qiup3981的专栏 1323

Response.Filter实现繁简转换

http://www.1task.cn/blog/article/60.aspx文件名乱码问题 : http://www.1task.cn/blog/article/5.aspxusing System;using System.IO;using System.Text; namespace Sample{public class ResponseFilter : Stream{pr...

weixin_34092370的博客 94
上一篇: 61条面向对象设计的经验原则
下一篇: 利用正则式计算表达式的值
JavaSxy
博客等级 码龄21年 1粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值