当前位置: 代码迷 >> Java Web开发 >> request.getParameter() 获取中文乱码,该如何解决
  详细解决方案

request.getParameter() 获取中文乱码,该如何解决

热度:8704   发布时间:2016-04-10 22:35:59.0
request.getParameter() 获取中文乱码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %> 
<%@ page import="java.lang.*" %> 
<%@ page import="java.net.*" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet" href="css/common.css">
<link type="text/css" rel="stylesheet" href="themes/base/style.css">
<script src="scripts/jquery-1.11.0.min.js"></script> 
<title>测试中文页面参数</title>
</head>
<body>
<%

request.setCharacterEncoding("UTF-8");
String hz=request.getParameter("hz");
hz=new String(hz.getBytes("ISO-8859-1"),"UTF-8" );
out.print(hz) ;
%>
</body>

在url中输入含有 hz 的参数的中文 ,out.print(hz);输出乱码.

注意:这个文件在其他电脑上测试输出显示不乱码,自己电脑上是乱码的。
可能是什么原因:我的电脑是 server 2008的。测试电脑是server 2012的,这有关系吗?还是tomcat哪里没配置好,或则eclipse哪里没配置好。求指教啊。
有没有谁也遇到过这样的问题啊,弄了好久了。
------解决方案--------------------
设了request的编码了么?request.setCharacterEncoding("utf-8");       你输出是什么的,过来的“hz” 是什么 打出来看看撒
------解决方案--------------------

中文乱码的出现就那么几种,楼主有时间可以找出来都看看;
把编码改为gbk试试吧;
但UTF-8都是可以的;
------解决方案--------------------
看看tomcat里面有没有设置,在server.xml中的Connector加个URIEncoding="utf-8",乱码就那几种情况,一个个看呗
------解决方案--------------------
引用:
Quote: 引用:


中文乱码的出现就那么几种,楼主有时间可以找出来都看看;
把编码改为gbk试试吧;
但UTF-8都是可以的;
换GBK可以的,可我想UTF-8 。是不是哪里没改过来

在你的IDE右键项目-->Properties-->Resource   看一下编码
------解决方案--------------------
如果在别人的电脑上没乱码的话,那就看看你的容器,tomcat的编码和他们的一样不;
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:


中文乱码的出现就那么几种,楼主有时间可以找出来都看看;
把编码改为gbk试试吧;
但UTF-8都是可以的;
换GBK可以的,可我想UTF-8 。是不是哪里没改过来

在你的IDE右键项目-->Properties-->Resource   看一下编码
UTF-8的 

你是输出乱码。。改一下response的内容类型试试:
response.setContentType("text/html;charset=UTF-8");
------解决方案--------------------
先试试response的setContentType方法,如果还不可以,看看你的tomcat和别人的tomcat编码一致否;
------解决方案--------------------
第一行的代码这么写可好,<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>试试吧,如果还是乱码,换一个浏览器试一下,我们老师说不同浏览器看也有不一样的。
------解决方案--------------------
URL所在的页面编码是不是UTF-8的?
------解决方案--------------------
引用:
[align=left]
Quote: 引用:

第一行的代码这么写可好,<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>试试吧,如果还是乱码,换一个浏览器试一下,我们老师说不同浏览器看也有不一样的。
确实是浏览器的问题,火狐和IE都乱码,谷歌没乱码。可是看了下浏览器的编码方式都是UTF-8的,很奇怪
你的js学的可好,jsp里有时会用到这个,js里了解多少啊?[/align]
------解决方案--------------------
中文乱码问题,网上解决方法多了去了,百度下就行了
------解决方案--------------------
引用:
设了request的编码了么?request.setCharacterEncoding("utf-8");       你输出是什么的,过来的“hz” 是什么 打出来看看撒
同意
  相关解决方案