请求web编码问题(gbk,utf-8)

问题描述

现有两个web应用,一个encodefilter是utf8的应用a,一个是gbk的应用b。a中设置一个servlet,在里面写httpclient代码,目的是代理访问b应用,访问的结果是页面重写了所有url,这些url都指向a应用下的那个servlet。正常情况下,两者可单独执行。先通过a访问b应用,点击触发一ajaxpost请求,(参数值含有中文),请问,我如何让在此a的那个servlet得到的request。getParamterMap()里面的中文在System.out.print下正常显示(newString的转码试了,貌似不好使)

解决方案

解决方案二:
Filter不能改,在得到参数之前设置gbk也不好使
解决方案三:
response.setCharacterEncoding("UTF-8");

解决方案四:
b应用不可改动
解决方案五:
你想想,你访问A的时候,被过滤器拦了,所有编码是utf-8了.!这个时候你的请求参数拿出来就是utf8编码的.!这个时候把utf-8编码的交给GBK处理,想正确显示的话,除非你在被GBK处理之前把他先转成GBK的.!否则.......
解决方案六:
引用楼主wasaia的回复:

现有两个web应用,一个encodefilter是utf8的应用a,一个是gbk的应用b。a中设置一个servlet,在里面写httpclient代码,目的是代理访问b应用,访问的结果是页面重写了所有url,这些url都指向a应用下的那个servlet。正常情况下,两者可单独执行。先通过a访问b应用,点击触发一ajaxpost请求,(参数值含有中文),请问,我如何让在此a的那个servlet得到的request。getParamterMap()里面的中文在System.out.print下正常显示(newString的转码试了,貌似不好使)

a:UTF8b:GBKa---req--->b:ajaxurl,encoding(utf8)a发给b前编码utf8(1)b---handle:req.setRequestEncoding(utf8),b处理按utf8解码(2)b---res--->a:encoding(gbk)b处理的结果按gbk编码(3)a---getres:req.setRequestEncoding(gbk)a得到结果按gbk解码(4)你这里b不能改,应该是上面(3)的地方是按utf8编码的。所以你的(4),先按utf8解码,再按gbk编码试试。newString(resStr.getBytes("UTF8"),"GBK");
解决方案七:
引用4楼izard999的回复:

你想想,你访问A的时候,被过滤器拦了,所有编码是utf-8了.!这个时候你的请求参数拿出来就是utf8编码的.!这个时候把utf-8编码的交给GBK处理,想正确显示的话,除非你在被GBK处理之前把他先转成GBK的.!否则.......

有没有补救的方法,只改servlet?
解决方案八:
引用5楼crazylaa的回复:

引用楼主wasaia的回复:现有两个web应用,一个encodefilter是utf8的应用a,一个是gbk的应用b。a中设置一个servlet,在里面写httpclient代码,目的是代理访问b应用,访问的结果是页面重写了所有url,这些url都指向a应用下的那个servlet。正常情况下,两者可单独执行。先通过a访问b应用,点击触发一ajaxpost请求,(参数值含有中文),请问,……

(锟杰诧拷OCS锟斤拷锟接︼拷眉锟斤拷锟斤拷锟斤拷锟斤拷?)这是结果。。还有其他方法不?
解决方案九:
顶上去。。。

时间: 2024-07-30 19:16:29

请求web编码问题(gbk,utf-8)的相关文章

有没有做过Java的UTF-8编码转GBK的方法,高分求

问题描述 有没有做过Java的UTF-8编码转GBK?我遇到一个问题要将UTF-8编码转GBK.在网上一直没有找到,找来找去只找到一个GBK2utf-8方法.大家有没有人写过,请赐教.谢谢高分谢谢首先说下newString(tmp.getBytes("ISO-8859-1"),"UTF-8")或者newString(tmp.getBytes("ISO-8859-1"),"GBK")newString(tmp.getBytes(

web编码问题. 。。。。。。

问题描述 web编码问题. ...... 我在我的数据库中插入一个用户名,然后通过JSP表单 输入用户名,来从数据库读取数据,正确和错误都会有返回页面.我在数据库打中文,通过表单提交的话,即使你打对了,他也返回的是错误的页面,只有你在数据库插入英文,你再输入正确的英文,他才会跳转成功页面,请问下各位大神,我这是要修改哪里的编码集.我把eclipse中和 数据库中都成了utf-8了的... 速求! 解决方案 做一个字符拦截器试试:http://blog.csdn.net/qq_19558705/a

详谈socket请求Web服务器过程(转)

  最开始我们需要明白一件事情,因为这是这篇文章的前提: HTTP协议只是一个应用层协议,它底层是通过TCP进行传输数据的.因此,浏览器访问Web服务器的过程必须先有"连接建立"的发生. 而有人或许会问:众所周知,HTTP协议有两大特性,一个是"无连接"性,一个是"无状态"性.这里的"无连接"岂不是跟上面的说法有冲突?其实这里并没有矛盾,只是人们对"连接"这个词的理解有差异.首先我们来看一下浏览器向Web服

字节,字符,Unicode及Web编码

1. 字节 字节是一个具体的概念,它表示的就是实实在在的数据,这里之所以从它开始说起,是因为在与计算机相关的数据描述中,它是基本单位(与比特位是等价的).8 位二进制的比特位为 1 个字节,比如: 0010 1101 方便些写成 16 进制: 2D 这里需要强调的是,字节本身是不具有任何意义的东西.它仅仅是数据,或者,也可以说,它仅仅是数字.就像你看到一堆单纯的数字,比如"1 4334 332 2129 98 212",没有任何意义. 所以,自然地,原始的字节数据,需要在特定的上下文环

UTF-8编码与GBK编码的区别

一,从字节上区分 GBK的文字编码是双字节来表示的,即不论中.英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1. UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码.对于英文字符较多的论坛则用UTF-8节省空间. 二,字符上区分 GBK包含全部中文字符; UTF-8则包含全世界所有国家需要用到的字符. 三,编码上区分 GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准) UTF-

[学习日记]对SOAP头内添加信息的验证,可实现对请求WEB服务进行身份验证。

首先,当然是发送的SOAP头里添加信息的方法了,前面有过记录,这里就不再写了可参见[学习日记]对SOAP请求的头添加内容的方法 那么这次向头内添加的信息为: dim proxy as GetHttpHeadersProxy=new GetHttpHeadersProxyproxy.AddHttpHeader("name","aowind")proxy.AddHttpHeader("pwd","123456") 接下来就是WEB

Servlet请求参数编码处理(POST & GET)

小巧,但在中文语境下,还是要注意的. 以下是关键语句,注意转码的先后顺序,这源于GET是HTTP服务器处理,而POST是WEB容器处理: String name = request.getParameter("nameGet"); name = new String(name.getBytes("ISO-8859-1"), "gb2312"); ================================ request.setCharact

web编码(转)

  问题2.浏览器编码方式是根据"响应标头-response header"中的键为"Content-Type"的值来自动选择判断,而不会简单的根据你在html中看到的标签值<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />来判定,虽然这个标签一般情况下会写入header,但是有时候会被暗中修改掉,导致html中看到的和调试捕

Web 编码 应该注意哪些问题,方便后面添加CSS等

问题描述 大家说出来我教教小弟 解决方案 解决方案二:比如标签格式排版方法.变量等的命名后面继续解决方案三:如果能有代码范例小弟感激不尽啊解决方案四:尽量按层级来吧变量名规范,标签属性规范