日期:2014-05-18  浏览次数:20750 次

jsp传递中文参数乱码问题
在浏览器地址栏调试“draw_pie.jsp?arg=7 ¦百度,Google”
程序运行结果,中文会显示成??请问如何解决这个问题 ,输出第一个参数控制台是乱码,第二个控制台是中文,但是前台网页显示的还是乱吗,这是怎么回师???
draw_pie.jsp内容如下() 
<?xml version="1.0" encoding="UTF-8" ?> 
<%String arg=request.getParameter("arg");
System.out.println(arg);
String argNew = new String(arg.getBytes("ISO-8859-1"),"gbk"); 
System.out.println(argNew);
%> 
<drawpie bgcolor="0xFFFFFF" bgimg="none"> 
<pie> 

<!-- 数值 --> 
<pie_num> <%=pie_name%> </pie_num> 

</pie> 
</drawpie> 


------解决方案--------------------
加上这个试试
<%response.setHeader("Charset","GBK");%>
------解决方案--------------------
<%response.setCharacterEncoding("GBK");%>
------解决方案--------------------
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

<% response.setContentType("text/html;charset=UTF-8"); %>
<% response.setCharacterEncoding("UTF-8"); %>


让JSP编译器能正确地解码我们的含有中文字符的JSP文件
<%@ page pageEncoding="UTF-8"%>


JSP向客户端输出
<%@ page contentType="text/html;charset=UTF-8" %>


让JSP能正确获得传入的参数
<% request.setCharacterEncoding("UTF-8"); %>



浏览器默认使用 UTF-8 的编码方式发送请求

1、Eclipse

2、MyEclipse

3、JSP(浏览器端乱码)

<%@ page contentType="text/html;charset=UTF-8" %>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
</head>

4、GET方式、超连接访问

String language = request.getParameter("language");
language = new String(language.getBytes("ISO-8859-1"),"UTF-8");


5、Servlet

request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");

6、Ajax

response.setContentType("text/xml;charset=UTF-8");


全部UTF-8,什么乱码都不会再出现了