java转码问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 11:19:50
在JAVA中,客户端是用GBK编码编写的,通过socket连接到服务器(用UTF-8)编写的,服务端收到后就是乱码了,我想在socket中就转换,请各位大虾指教。return new String(rt.getBytes(“GBK”),"utf-8") ;这个方法没用,大侠们快点想想还有其他办法没?我用的是JKD1.4的(业务需要);

呵呵,看我这个,是本人原创。不管你是任何编码都可以解决,唯一的缺点是效率稍微低了点(不过比楼上那个要快)。

思路:
1.首先在jsp页面即客户端用JavaScript将汉字处理成asc码
2.服务端再将asc码还原成原有的字符

JavaScript转换代码:

var s=document.getElementById("text").value;
var t="";
//将汉字转换成ASCII码,然后在服务器端里再根据ASCII码转换成相应的字符
for(i=0;i<s.length;i++){
t+=s.charCodeAt(i)+" ";//将字符转换成相应的ASCII码并用空格隔开;
}

java服务端还原:

String param=request.getParameter("param");
StringBuffer buf=new StringBuffer("");
String[] ss = param.split(" ");
for (int i = 0; i < ss.length; i++) {
char c = (char) Integer.parseInt(ss[i].trim());
buf.append(c);
}
System.out.println("还原后的字符是:"+buf.toString());

----------------------
如果你再把转换后的asc码再加个数字或者减个数字就是一个简单的加密,O(∩_∩)O~,希望对你有所帮助

public String convertString(String gbk){
String utf8 = "";
try {