@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进制就可以了。
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");
就不会出现中文问题了。
网上找了一个,你试试:
/**
* 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中文网其他相关文章!