如果在JS中可有如下方法:
1、在JS文件中encodeURI处理一下: encodeURI(encodeURI(url)); (一定要2次)
2、在jsp中如下处理:java.net.URLDecoder.decode(clumnInfo,"UTF-8");
其他形式
方法一:
http://xxx.do?ptname='我是中国人'
String strPtname = request.getParameter("ptname");
strPtname = new String(strPtname.getBytes("ISO-8859-1"), "UTF-8");
方法二:
<%@ page contentType="text/html;charset=gb2312" %>
<a href="ds.jsp?url=<%=java.net.URLEncoder.encode("编码的是这里","GB2312")%>">点击这里</a>
<%
//request.setCharacterEncoding("GBK");
if(request.getParameter("url")!=null)
{
str=request.getParameter("url");
str=java.net.URLDecoder.decode(str,"GB2312");
str=new String(str.getBytes("ISO-8859-1"));
out.print(str);
}
%>
==================================
public String chinatoString(String str)
{
String s=str;
try
{
byte tempB[]=s.getBytes("ISO-8859-1");
s=new String(tempB);
return s;
}
catch(Exception e)
{
return s;
}
}
====================================================
function URLencode(sStr)
{
return escape(sStr).
replace(/\+/g, '%2B').
replace(/\"/g,'%22').
replace(/\'/g, '%27').
replace(/\//g,'%2F');
}
方法三:
如果用jstl的话,可以自己写一个el的function,调用URLEncoder.encode来编码。
IE缺省对URL后面的参数是不编码发送的,但是tomat缺省是按ISO8859-1来进行URL解码,因此才会出现上述错误。好的做法是:
1、在URL参数中确保用UTF-8编码之,方法可以用js函数encodeURI(),或调用自定义的el function;
2、设置server.xml中的Connector熟悉URIEncoding="UTF-8",确保解码格式与编码格式统一;
方法四:
<script>
for(var i=0;i<document.links.length;i++){
document.links[i].href=encodeURI(document.links[i].href);
}
</script>
在action中,String s=request.getParameter("s");
s=new String(s.getBytes("iso-8859-1"),"gbk");
JSP中文及传中文参数乱码解决方法小结
在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题,以下是我在软件开发中遇到的乱码问题以及解决方法。
1、JSP页面乱码
这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可,
2、数据库乱码
这种乱码会使你插入数据库的中文变成乱码,或者读出显示时也是乱码,解决方法如下:
在数据库连接字符串中加入编码字符集
String Url="jdbc:mysql://localhost/digitgulf?user=root&password=root&useUnicode=true&characterEncoding=GB2312";
并在页面中使用如下代码:
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");
3、中文作为参数传递乱码
当我们把一段中文字符作为参数传递个另一页面时,也会出现乱码情况,解决方法如下:
在参数传递时对参数编码,比如
RearshRes.jsp?keywords=" + java.net.URLEncoder.encode(keywords)
然后在接收参数页面使用如下语句接收
keywords=new String(request.getParameter("keywords").getBytes("8859_1"));
4、JSP页面乱码加这句?
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="err.jsp" %>
5、在form中用get方法传参乱码解决方法
如:
1、 login.jsp
<%@ page language="java" contentType="text/html;charset=GBK"%>
<html>
<head>
<title>get传参乱码问题</title>
</head>
<body>
<form name="form1" action="login_do.jsp" method="GET">
<input type="text" name="username"/><br>
<input type="password" name="password"/><input type="submit" value="提交"/>
</form>
</body>
</html>
============
2、login_do.jsp
<%@ page language="java" contentType="text/html;charset=GBK"%>
<%
String temp=request.getParameter("username");
if(temp!=null){
temp=new String(temp.getBytes("8859_1"),"GBK");
}
out.println(temp);
%>
6、在ajax中url传中文参数时乱码要注意的地方:
例如下面这个方法:
//增加类别函数
function addSort(){
var name = document.getElementById("name").value; //取得id为name的文本框的值(中文的)
if(name==""){
alert("类别名称不能为空!");
document.getElementById("name").focus();
return false;
}
var url = "action=add&name="+name; //这个name是中文参数
createXMLHttpRequest();
XMLHttpReq.onreadystatechange = AddStateChange;
XMLHttpReq.open("POST","adminSort",true); //通过post方式传送
XMLHttpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
XMLHttpReq.send(url);
}
============
在servlet中获取参数的时候:
//解决url中文参数乱码的关键是这里,因为post方法提交数据默认的字符编码是utf-8,
//如果后台是gb2312或其他编码数据就会产生乱码,所以这里也要将请求参数设为utf-8
//尽管你的jsp页面是contentType="text/html;charset=GBK"
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
当输出返回信息时:
response.setContentType("text/xml;charset=UTF-8");
//这里有点怪,当设为GBK时,ie显示不正常,firefox则正常,设为utf-8时,两者都显示正常
以上方法是收聚了一些网友所讲的解决方法 。
分享到:
相关推荐
js 中乱码处理法方式 encodeURIComponent(encodeURIComponent(customerAddress)) decodeURIComponent(customerName) js到java encodeURI(url) String qijuType= new String(request.getParameter( (...
JAVA(Web)中URL链接中文参数乱码,如,java web中的超链接<a></a>标签传中文参数,提交到servlet中后,解决乱码问题!
在Java开发中,遇到中文乱码问题是一种常见的挑战,特别是在处理URL时。URL中文乱码问题主要是由于URL编码和解码过程中的不一致导致的。下面将详细介绍如何解决这个问题,并探讨几种常用的方法。 首先,我们需要...
JSP 对 URL 链接中的中文乱码处理方法总结 JSP 对 URL 链接中的中文乱码处理方法总结是指在 JSP 应用程序中,如何正确地处理 URL 链接中的中文字符编码问题。这个问题的出现是由于不同浏览器和服务器的默认编码方式...
在ASP.NET开发过程中,我们时常会遇到URL参数传递中文字符时出现乱码的问题。这个问题主要源于字符编码不一致导致的,下面将详细讲解三种解决这个问题的方法。 ### 方法一:设置Web.config配置 在ASP.NET应用的`...
在后端Java代码中,处理请求参数时可能会遇到乱码问题。例如,使用`request.getParameter("params")`获取参数时,如果请求时的编码和服务器端解析的编码不一致,就会出现乱码。在本例中,服务端代码使用了`...
php 中 URL 地址栏传参数中文乱码解决方法汇总 PHP 中 URL 地址栏传参数中文乱码解决方法汇总是指在 PHP 编程中,如何解决 URL 地址栏传参数中文乱码的问题。这个问题是由于浏览器和服务器之间的编码问题引起的。 ...
以上就是解决在使用jQuery获取URL参数时出现中文乱码问题的两种方法,以及相关的编码和解码处理方式。需要注意的是,乱码问题的出现主要是由于编码和解码不一致导致的,所以在前后端处理URL参数时,一定要注意正确地...
java代码-使用java解决中文参数乱码问题的源代码 ——学习参考资料:仅用于个人学习使用!
总的来说,处理Java中CSV文件的中文乱码问题主要涉及正确设置字符编码,而给定的.NET DLL文件与此问题的解决没有直接关联。如果你在.NET环境中遇到类似问题,可以参考.NET的编码处理方式,或者寻找适合的.NET库来...
URL地址传参中文乱码处理是指在Web应用程序中,将中文参数传递给服务器时,可能出现乱码的情况。这种情况可能是由于编码问题或Tomcat服务器的配置问题引起的。 在处理URL地址传参中文乱码时,通常有三种解决方案: ...
通过上述方法,可以有效解决Java在处理中文字符时可能出现的乱码问题,确保程序在各种环境下正确显示中文。在开发过程中,保持编码一致性,理解和利用Java提供的字符编码工具,是预防和解决这类问题的关键。
在Java编程中,中文乱码问题是一个常见的困扰,尤其是在处理文件读写、网络传输或数据库操作时。本文将深入探讨几种解决Java中中文乱码问题的方法,并以MyEclipse为开发环境,结合实际示例进行讲解。 1. 文件读写中...
在开发Java Web应用程序时,我们经常遇到URL地址传输参数乱码的问题,特别是在处理中文字符时。这是因为URL编码遵循的是UTF-8标准,而服务器或浏览器可能默认使用其他字符集,如ISO-8859-1,导致解码时出现乱码。...
在IT领域,尤其是在Web开发中,处理URL传递参数时遇到中文乱码是一个常见的问题,尤其当数据需要跨系统或在不同编码环境下传输时更为显著。本文将深入探讨URL传参数时中文乱码的原因、影响以及如何有效解决这一问题...
然而,当这些.class文件中包含中文字符时,如果没有正确处理编码,可能会出现中文乱码的问题。本文将详细介绍如何解决JAVA反编译文件时的中文乱码问题。 首先,理解问题的根源:Java源代码默认采用UTF-8编码,但...
但在接收浏览器发送的带中文URL时,取参数就会是乱码。经过查找资源,发现大部分浏览器,中文一般会先转码为utf-8,此时,idHttpServer控件会根据请求头中ContentType的Chatset进行相应的转码,以形成正确的参数。但...
本篇文章将深入探讨Java中处理中文乱码的各种方法,帮助开发者有效解决这类问题。 首先,我们要了解Java中的字符编码。Java采用Unicode字符集,其内部字符串是以UTF-16编码存储的。这意味着Java可以处理世界上大...
本篇文章将全面解析Java中的乱码处理方法,涵盖纯Java代码、Servlet、JSP以及EJB类的解决方案,帮助开发者有效解决这一问题。 首先,理解字符编码的基础知识至关重要。在计算机世界里,字符与数字之间的映射关系...