java big5到gb2312的编码转换

2016-02-19 09:46 6 1 收藏

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐java big5到gb2312的编码转换,希望大家看完后也有个好心情,快快行动吧!

【 tulaoshi.com - Web开发 】

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 =(big8)&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(indexbs.length){
int high =bs[index]&0xff;
if(high=0xa1&&high=0xfe){
index ++;
if(index=bs.length) break;
int low =bs[index]&0xff;
if(low0x40||low0xfe) continue;
if(low0x7e&&low0xa1) 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;
}
}

来源:https://www.tulaoshi.com/n/20160219/1592068.html

延伸阅读
UTF8转换成GB2312 当我们在基于HTTP协议的JSP或Servlet的应用中获取数据或发送请求时,JVM会把输送的数据编码成UTF8格式。如果我们直接从HTTP流中提取中文数据,提取的结果为“????”(可能更多问号),为转换成我们能够理解的中文字符,我们需要把UTF8转换成GB2312,借助ISO-8859-1标准编码能够轻易的实现,下面的代码实现了这一功能: ...
标签: Web开发
Dreamweaver CS3默认的新建文档的编码是UTF-8,这对于有些只做GB2312编码网站的设计师来说每次都在页面设置中修改有点麻烦。 其实我们完全可以将Dreamweaver CS3默认的UTF-8编码修改成GB2312,这样我们以后新建的网页就会是GB2312编码了。 首先我们打开Dreamweaver CS3的编辑菜单-选择首选参数设置。如下图:     再选择新建...
标签: Web开发
汉字标准交换码共分两级。第一级为常用字,有3755字,按汉语拼音字母顺序排列,第二级为次常用字,有3008字,按部首排列。GB2312的编码范围为2121H-777EH. UNICODE 是两字节的全编码,对于ASCII字符它也使用两字节表示。代码页是通过高字节的取值范围来确定是ASCII字符,还是汉字的高字节。如果发生数据损坏, 某处内容破坏,则会引起其后汉字...
标签: Web开发
代码如下: %@ page contentType="text/html;charset=gb2312 " % 改为: 代码如下: %@ page contentType="text/html;charset=gb2312" % 后就正常了。 问题虽然解决了,但有点不明白为什么多了个空格就会出错,请各位大虾指点迷津。
最近在做一个短信相关的项目。从联通网关deliver过来的短信都是ucs2编码的。 在网上找了些资&#...

经验教程

907

收藏

59
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部