论坛首页 Java企业应用论坛

还是Java编码问题

浏览 1704 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2009-12-16  
最近在做一个Java接口程序,其中我们制定的协议中,有一个Encode字段,也就是代理商传参的编码格式,如果缺省或者不指定,则用gb2312格式,但是也允许他指定别的格式。
于是问题就来了:
String encode = request.getParameter("Encode");
request.setCharacterEncoding((encode==null||encode.equals(""))?"gb2312":encode);

这样解决不了乱码问题,因为在request.setCharacterEncoding之前已经用过request获取参数了。也就是说,必如果getParameter之前使用过setCharacterEncoding这个方法,就解决不了乱码问题。

我也想进行逐个字段进行编码,但是,协议字段非常多,代理商传的字段个数是不确定的,我用的getParameterMap方法,k->v,中的V是数组,要转换未免太麻烦,不知道有没有什么好一点的解决方法
   发表时间:2009-12-16  
不知道你啥特殊场景

这年头不会filter也没听说过吧
0 请登录后投票
   发表时间:2009-12-16  
GRDJE 写道
不知道你啥特殊场景

这年头不会filter也没听说过吧

encoding是需要对方给我传过来的,这个filter我怎么去写
0 请登录后投票
   发表时间:2009-12-16  
所以把你的宝贝场景讲讲清楚, 你是怎么 和你的宝贝代理商接口的
你就是把一个url给你的代理商, 让他提交?
0 请登录后投票
   发表时间:2009-12-16  
代理商------post---->支付接口------socket------->后台
最初约定gb2312,上头硬要支持别的格式,改为默认为gb2312,若用别的编码,则带一个ecode。然后我request.getParameter("ecode").
我的办法:使用ecode对字段逐个解码,很麻烦。
filter,不是一样要request.getParameter?,既然用了这个方法,request.setParameter就无效。
0 请登录后投票
   发表时间:2009-12-16  
tjgamejx2 写道
最近在做一个Java接口程序,其中我们制定的协议中,有一个Encode字段,也就是代理商传参的编码格式,如果缺省或者不指定,则用gb2312格式,但是也允许他指定别的格式。
于是问题就来了:
String encode = request.getParameter("Encode");
request.setCharacterEncoding((encode==null||encode.equals(""))?"gb2312":encode);

这样解决不了乱码问题,因为在request.setCharacterEncoding之前已经用过request获取参数了。也就是说,必如果getParameter之前使用过setCharacterEncoding这个方法,就解决不了乱码问题。

我也想进行逐个字段进行编码,但是,协议字段非常多,代理商传的字段个数是不确定的,我用的getParameterMap方法,k->v,中的V是数组,要转换未免太麻烦,不知道有没有什么好一点的解决方法


request.getParameter("Encode") 改成从queryString里面解析,一旦调用了getParameter方法,encoding就定下来了重设没用
0 请登录后投票
   发表时间:2009-12-16  
quaff 写道

request.getParameter("Encode") 改成从queryString里面解析,一旦调用了getParameter方法,encoding就定下来了重设没用

是啊,请问queryString咋用,给个例子
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics