网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 网络学院 >> 程序设计 >> Java编程 >> 文章正文
  JSP中文乱码问题解决方法小结(转)            【字体:
JSP中文乱码问题解决方法小结(转)
作者:佚名    文章来源:不详    点击数:    更新时间:2007-9-2    
在使用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时,两者都显示正常

 


本文来源:http://blog.csdn.net/li1923214/archive/2007/08/15/1745285.aspx
站内文章搜索 高级搜索
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
     用java实现web服务器
     用java快速开发linux gu…
     正则表达式分解siemens交…
     [portal参考手册]目录
     jsp中调用oracle存储过程…
  • JSP中JavaBean的生命周期

  • JSF 的性能远不及 JSP 或 St…

  • JSP学习经验总结

  • Struts2学习:在struts2中集…

  • Sevrlet 中防止中文乱码策略

  • 保留weblogic 中jsp编译后生…

  • 浅析Spring框架下PropertyPl…

  • (JSP)在文本域中显示超链接n…

  • Jsp 应用之自定义标签库(tag…

  • SPRING+STRUTS+HIBERNATE登录…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    网络学院©2007 www.23book.net
    为您提供web编程,vb编程,vc编程,服务器架设管理,数据库设计等方面的知识 站长:David