Netty4 http服务器接收信息时,获得的uri中有中文乱码

黑白羽 发布于 2016/10/24 09:59
阅读 1K+
收藏 0
因为信息由delphi做的软件上传的以GBK编码的,在netty接收到请求后,发现uri中的中文乱码,如何解决,求大神指导

以下是问题补充:

@黑白羽:使用的是netty4 (2016/10/24 10:02)
加载中
0
GYW
GYW
这种问题一般是服务端和客户端两边的编码格式不统一造成的,可以分析一下两边的编码格式,统一一下两边格式应该就行了
0
银杏卡卡
银杏卡卡
你的HttpFileServerHandler中

QueryStringDecoder decoderQuery = new QueryStringDecoder(request.uri(), Charset.utf8);

你把这个里面的utf8跟客户端那边统一一下就行了

黑白羽
黑白羽
回复 @BoXuan : 我去试下
银杏卡卡
银杏卡卡
回复 @BoXuan : 客户端是用get?post方式: HttpPostRequestDecoder decoder = new HttpPostRequestDecoder(new DefaultHttpDataFactory(DefaultHttpDataFactory.MINSIZE, Charset.utf8), request, Charset.utf8);
银杏卡卡
银杏卡卡
回复 @黑白羽 : 我这边测试是没问题的
银杏卡卡
银杏卡卡
回复 @黑白羽 : 嗯,我测试一下再答复你
黑白羽
黑白羽
回复 @BoXuan : 编码都试了 gbk,gb2312,utf8,就怕编码没统一
下一页
0
银杏卡卡
银杏卡卡
HttpMethod httpMethod = request.method();
if (httpMethod == HttpMethod.GET) {
    QueryStringDecoder decoderQuery = new QueryStringDecoder(request.uri(), Charset.utf8);
Map<String, List<String>> uriAttributes = decoderQuery.parameters();
} else if (httpMethod == HttpMethod.POST) {
    HttpPostRequestDecoder decoder = new HttpPostRequestDecoder(new DefaultHttpDataFactory(DefaultHttpDataFactory.MINSIZE, Charset.utf8), request, Charset.utf8);
List<InterfaceHttpData> list = decoder.getBodyHttpDatas();
}
银杏卡卡
银杏卡卡
回复 @黑白羽 : 我这边用着好好的,不管是get还是post,能提交参数和文件,还能直接提交纯字节数据,编码都没问题。我建议你在服务器这边处理request请求这里断点调试一下。
黑白羽
黑白羽
回复 @BoXuan : 由别人开发的一个软件提交的,没法改了。。。
银杏卡卡
银杏卡卡
回复 @黑白羽 : 完全可以一次性用post提交的,post提交表单时是可以提交参数和文件的。
银杏卡卡
银杏卡卡
回复 @黑白羽 : 这个异常应该是你那边少写了个handler,导致无法处理数据
黑白羽
黑白羽
回复 @BoXuan : 先get提交,进行一次操作。然后再进行post提交,提交所带的图片文件
下一页
0
银杏卡卡
银杏卡卡
要不你把异常的信息都发过来吧,我看看
返回顶部
顶部