主页 > 知识库 > java big5到gb2312的编码转换

java big5到gb2312的编码转换

热门标签:怎样把地图标注出来 腾讯地图标注商户改名注册入驻 商丘百应电话机器人有没有效果 开封便宜外呼系统报价 黄石智能营销电销机器人效果 淮南腾讯地图标注 漯河办理400电话 地图标注人员兼职 电话机器人的特色和创新
package com.Big5ToUTF8;
import java.io.*;
public class Big5Tran {
private static final String tabFile ="bg-gb.tab";
private static byte[] data;
static{
try{
FileInputStream fis =new FileInputStream(tabFile);
int len =fis.available();
data =new byte[len];
fis.read(data);
fis.close();
}catch(Exception ex){
ex.printStackTrace();
System.exit(1);
}
}
/**
*取得BIG5汉字big在data中的偏移
*/
private static int indexOf(int big){
int high =(big>>>8)0xff;
int low =big0xff;
high -= 0xa1;
if(low=0x7e) low -= 0x40;
else low -= (0xa1 -0x7e -1) +0x40;
return 2*(high*157+low);
}
/**
*将保存在bs数字中的big5编码的字符串数据转换成gb2312编码的数据
*注意:此方法将更改原先存储的数据
*@param bs 需要转换的以big5编码的字符串数据
*@return bs 经过转换的数据,保存在参数中的byte数组中
*/
public static byte[] translateBig5ToGb(byte[] bs){
int index =0;
while(indexbs.length){
int high =bs[index]0xff;
if(high>=0xa1high=0xfe){
index ++;
if(index>=bs.length) break;
int low =bs[index]0xff;
if(low0x40||low>0xfe) continue;
if(low>0x7elow0xa1) continue;
int offset =indexOf((high8)|low);
bs[index-1] =data[offset];
bs[index ] =data[offset+1];
index++;
}
else index++;
}
return bs;
}
public static String translateBig5ToGb(String big){
String result =null;
try{
byte[] bs =big.getBytes("big5");
bs =translateBig5ToGb(bs);
result =new String(bs,"gb2312");
}catch(Exception e){
}
return result;
}
}
您可能感兴趣的文章:
  • Java 处理图片与base64 编码的相互转换的示例
  • Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码
  • java自定义实现base64编码转换
  • 深入解析Java中的编码转换以及编码和解码操作
  • Java IO文件编码转换实现代码
  • java中url汉字编码互相转换实例
  • java实现文件编码转换的方法

标签:大兴安岭 亳州 红河 武威 郑州 马鞍山 岳阳 拉萨

巨人网络通讯声明:本文标题《java big5到gb2312的编码转换》,本文关键词  java,big5,到,gb2312,的,编码,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《java big5到gb2312的编码转换》相关的同类信息!
  • 本页收集关于java big5到gb2312的编码转换的相关信息资讯供网民参考!
  • 推荐文章