websocket上传参数中文乱码问题解决
最近在做毕业设计的时候用到websocket,遇到的一个问题,就是websocket上传参数时会中文乱码,下面是我遇到的问题描述和解决方法:
websocket = new WebSocket("ws://localhost:8080/FleaMarket/websocket?name="+name);
在这里我上传一个参数name,如果这个参数是中文的,在服务器端接收到的name就会变成乱码。
我的解决方法时用URLDecoder来解码,之前用new String(qryString.getBytes(“GB2312”), “utf-8”)这个方法来转换,结果行不通。下面是核心源码跟输出结果。
核心源码:
String qryString = session.getQueryString();// 获取上传的参数
System.out.println("qryString:"+qryString);
String decode_str = URLDecoder.decode(qryString, "utf-8");
System.out.println("decode_str:"+decode_str);
String name = decode_str.substring(decode_str.indexOf("=") + 1);// 上传的name
if (name == "-1") {
this.username = "游客(" + getOnlineCount() + ")";
} else {
// this.username = customerService.findCustomerById(id).getCust_name();// 根据id获取customer
this.username = name;
}
输出结果:
有一连接关闭!当前在线人数为0
qryString:name=%E4%BD%A0%E5%A5%BD
decode_str:name=你好
欢迎你好加入!当前在线人数为1
第一次写博客,希望帮助到大家,也方便我的记忆,如果有错误的地方,欢迎指正。