当前位置: 首页 > 图文教程 > 网络编程 > JSP > java big5到gb2312的编码转换

JSP
JSP中有关时间和日期类的使用
JSP中引用JavaBean组件
如何在JSP中添加自己的Tag
使用JSP/Servlet上载文件
关于Java Servlet的Filter 技术
JSP数据库连接方式总结
不需ODBC可由IP地址与端口号建立与SQLSERVER的连接
J2ME学习札记(三)
java 设计模式之Observer
在JSP中如何从数据流中取得图片数据并按随意位置显示
三级级联下拉菜单实现
网页中在图层中部分显示图片(窗口形式)
MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结
XSLT合并模板简述
JSP入门学习笔记
Structs中基本配置入门
利用jConfig获取xml文件中的配置信息
关于Applet做数字签名,授予访问本地资源(原创)
在JSP开发中使用jdom解析临时存放数据的XML文件
关于Hhtml嵌入打成jar包的Applet方法

JSP 中的 java big5到gb2312的编码转换


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 49 ::
收藏到网摘: n/a

将保存在bs数字中的big5编码的字符串数据转换成gb2312编码的数据 此方法将更改原先存储的数据 需要转换的以big5编码的字符串数据 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 =big&0xff;
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(index<bs.length){
int high =bs[index]&0xff;
if(high>=0xa1&&high<=0xfe){
index ++;
if(index>=bs.length) break;
int low =bs[index]&0xff;
if(low<0x40||low>0xfe) continue;
if(low>0x7e&&low<0xa1) continue;
int offset =indexOf((high<<8)|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;
}
}