首页  >  文章  >  电脑教程  >  如何在Java中将字符串转换为GB2312编码?

如何在Java中将字符串转换为GB2312编码?

王林
王林转载
2024-01-20 08:42:13562浏览

如何在Java中将字符串转换为GB2312编码?

如何在Java中将字符串转换为GB2312编码?

@Test

public void test333(){

String a="青白";

try {

byte[] b=a.getBytes("GB2312");

System.out.println(bytesToHexFun1(b));

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

}

//将byte数组转成16进制字符串

public static String bytesToHexFun1(byte[] bytes) {

char[] HEX_CHAR = {'0', '1', '2', '3', '4', '5',

'6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};

// 一个byte为8位,可用两个十六进制位标识

char[] buf = new char[bytes.length * 2];

int a = 0;

int index = 0;

for(byte b : bytes) { // 使用除与取余进行转换

if(b

a = 256 + b;

} else {

a = b;

}

buf[index++] = HEX_CHAR[a / 16];

buf[index++] = HEX_CHAR[a % 16];

}

return new String(buf);

}

中心思想就是先转成GB2312的byte数组,再转成16进制就可以了。

java String Byte转换的问题

1、在网页中输出中文。

JAVA在网络传输中使用的编码是"ISO-8859-1",故在输出时需要进行转化,如:

String str="中文";

str=new String(str.getBytes("GB2312"),"8859_1");

但假如在编译程序时,使用的编码是“GB2312”,且在中文平台上运行此程序,不会出现此问题,一定要注重。

2、从参数中读取中文

这正好与在网页中输出相反如:

str=new String(str.getBytes("8859_1"),"GB2312");

3、操作DB中的中文问题

一个较简单的方法是:在“控制面扳”中,把“区域”设置为“英语(美国)”。假如还会出现乱码,还可进行如下设置:

取中文时:str=new String(str.getBytes("GB2312"));

向DB中输入中文:str=new String(str.getBytes("ISO-8859-1"));

4、在jsp中的中文解决:

在“控制面扳”中,把“区域”设置为“英语(美国)”.

在JSP页面中加入:

假如还不行正常显示,则还要进行下面的转换:

如:name=new String(name.getBytes("ISO-8859-1"),"GBK");

就不会出现中文问题了。

java String类型转换

网上找了一个,你试试:

/**

* unicode转字符串

* @param str

* @return

*/

public static String unicode2Str(String str) {

StringBuffer sb = new StringBuffer();

String[] arr = str.split("\\u");

int len = arr.length;

sb.append(arr[0]);

for(int i=1; i

String tmp = arr[i];

char c = (char)Integer.parseInt(tmp.substring(0, 4), 16);

sb.append(c);

sb.append(tmp.substring(4));

}

return sb.toString();

}

/**

* 字符串转unicode

* @param str

* @return

*/

public static String str2Unicode(String str) {

StringBuffer sb = new StringBuffer();

char[] charArr = str.toCharArray();

for (char ch : charArr) {

if (ch > 128) {

sb.append("\u" + Integer.toHexString(ch));

} else {

sb.append(ch);

}

}

return sb.toString();

}

public static void main(String[] args) {

System.out.println(str2Unicode("222ds测1试aa"));

String str = "u6d4b1u8bd5aa";

System.out.println(unicode2Str(str));

}

以上是如何在Java中将字符串转换为GB2312编码?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:docexcel.net。如有侵权,请联系admin@php.cn删除