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

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

第一次写博客,希望帮助到大家,也方便我的记忆,如果有错误的地方,欢迎指正。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值