现状:
一、因为是两个应用之间的参数传递,所以页面的编码格式不一样。
二、应用A的JSP的
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
应用B的JSP的
<%@ page contentType="text/html; charset=gb2312" pageEncoding="gb2312"%>
可能页面本身编码和charset没关系,但是现在参数传递确实面临这个问题。三、现在,想要解决的是UTF-8的请求数据,到gb2312的乱码问题。本人在应用B的JSP中做了,
new String(utf8_name.getBytes(), "gb2312");
new String(utf8_name.getBytes("iso-8859-1"), "gb2312");
new String(utf8_name.getBytes("UTF-8"), "gb2312");
等转码处理,都不能成功,
加了request.setCharacterEncoding("gb2312");段也不行
上网查了下,有的说是按照上面做的,有的是给了一大串的代码。
问:
现在不明白要怎么搞,请教各位遇到这种问题如何处理啊?
一、因为是两个应用之间的参数传递,所以页面的编码格式不一样。
二、应用A的JSP的
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
应用B的JSP的
<%@ page contentType="text/html; charset=gb2312" pageEncoding="gb2312"%>
可能页面本身编码和charset没关系,但是现在参数传递确实面临这个问题。三、现在,想要解决的是UTF-8的请求数据,到gb2312的乱码问题。本人在应用B的JSP中做了,
new String(utf8_name.getBytes(), "gb2312");
new String(utf8_name.getBytes("iso-8859-1"), "gb2312");
new String(utf8_name.getBytes("UTF-8"), "gb2312");
等转码处理,都不能成功,
加了request.setCharacterEncoding("gb2312");段也不行
上网查了下,有的说是按照上面做的,有的是给了一大串的代码。
问:
现在不明白要怎么搞,请教各位遇到这种问题如何处理啊?
那你为什么不把你的应用B改成UTF8编码?
1. A中的页面是post过来的?
2. B中JSP的代码能不能全一点。回答之前,可以拿
new String(utf8_name.getBytes("GB2312"), "UTF-8");
先试一下
问题2:给部分吧,太多了。//UTF-8编码传过来的参数
String utf8_city_name = request.getParameter("city_name");
//我认为的UTF-8到gb2312的转码方法,不行。
String city_name = new String(utf8_city_name.getBytes("UTF-8"), "gb2312");第三:刚才你给的代码,我试了下,不行。而且,我也没理解你代码的意思,呵呵。
望指教
直接在同一个应用下,两个不同的JSP间,
用post方法,传递参数。A.JSP的charset是utf-8。
如下:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>B.JSP的charset是gb2312。
如下:<%@ page contentType="text/html; charset=gb2312" pageEncoding="gb2312" buffer="50k"%>
在B.jsp中,输出A.jsp传递过来的参数,
用以上的转码方式后还是乱码。
既然你不方便给,我的这两个页面你参考一下吧。
a.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="b.jsp" method="post">
<input type="text" name="hello" />
<input type="submit" />
</form>
</body>
</html>
b.jsp:<%@ page language="java" contentType="text/html; charset=GB2312"
pageEncoding="GB2312"%>
<%request.setCharacterEncoding("UTF-8"); %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>Insert title here</title>
</head>
<body>
${param.hello}<br/>
</body>
</html>
1、utf-8——》unicode--》gb2312 就是 new String(utf8_name.getBytes(), "gb2312");
2、new String(utf8_name.getBytes("iso-8859-1"), "gb2312");你都测试过了,还是没有解决,那么我想肯定涉及到第三个东西,如web.xml中定义的过滤器,某个类等等
你的代码,是加了<%request.setCharacterEncoding("UTF-8"); %>这个之前实验了,现在结合13#的,我把web.xml的过滤器去掉,
用最简单的代码来测试下,看下效果。
【gb2312】
,没理解这个方法的含义,我瞎搞了
用来规范请求页面传递过来的数据编码。之前的理解偏差太大了。