您的位置:首页 > 其它

websocket上传参数中文乱码问题解决

2016-04-25 13:38 281 查看

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


第一次写博客,希望帮助到大家,也方便我的记忆,如果有错误的地方,欢迎指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: