在使用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时,两者都显示正常

转载于:https://www.cnblogs.com/hqr9313/archive/2012/09/19/2693459.html

JSP中文及传中文参数乱码解决方法小结相关推荐

  1. get、post请求参数乱码解决方法(qq:1324981084)

    get.post请求参数乱码解决方法(qq:1324981084) 参考文章: (1)get.post请求参数乱码解决方法(qq:1324981084) (2)https://www.cnblogs. ...

  2. win10html中文乱码,Win10预览版10125中文语言包安装及乱码解决方法

    昨天,Win10预览版10125的英文ISO系统镜像以及Win10 build 10125的中文语言包已经泄露到网络上了,很多朋友迫不及待尝试安装了这个版本,有些朋友反馈即使安装了中文语言包,有些软件 ...

  3. FastReport for Delphi2010 中文菜单显示不全或者乱码解决方法

    中文菜单不能正确显示是由于它自带的资源编译器太老,和Delphi2010自带的TEncoding.UTF8不匹配造成的.此资源编译器frcc主要就是将资源文件*.xml中的资源编码后生成相应的.pas ...

  4. jsp页面之间传中文参数显示乱码问题的解决

    jsp页面之间传中文参数显示乱码问题的解决 参考文章: (1)jsp页面之间传中文参数显示乱码问题的解决 (2)https://www.cnblogs.com/sllzhj/p/9673628.htm ...

  5. C# .net中cookie值为中文时的乱码解决方法

    C# .net中cookie值为中文时的乱码解决方法 一.cookie的名称或子cookie的名称不能为中文,否则无法获得cookie 这个好办,名称不用中文即可 二.cookie的值为中文时候,取c ...

  6. Pandas导出CSV文件中文乱码解决方法

    问题描述: 使用to_csv方法导出CSV文件,文件出现中文乱码 解决方法: 在使用to_csv时在参数中加入参数encoding='utf_8_sig' 关于原理,请参考以下文章: utf-8和ut ...

  7. putty 中文乱码解决方法

    putty 中文乱码解决方法 方法一: 打开putty主程序,选择window-〉Appearance-〉Font settings-〉Change...,选择Fixedsys字体,字符集选择CHIN ...

  8. Zxing中文乱码解决方法

    Zxing中文乱码解决方法总结 尝试过很多方法  最后发现此方法解决的乱码最多....... 在百度搜索二维码图片 经过前2页的测试  除开一张图之外  其余都能扫描出结果 如果大家有更好的解决方法 ...

  9. vs code中文乱码解决方法

    修改 1.(安装方法) 2.显示终端输入数据输出结果(完美解决) 3.修改部分:中文乱码解决方法 第一步: 第二步: 1.(安装方法) 转载于: https:blog.csdn.net/qq_4304 ...

最新文章

  1. 推荐2个命令快速在本地和服务器之间上传下载文件
  2. 简易调用及实例化视图
  3. java 取栈顶元素_《Java实战之内存模型》详解篇
  4. aop实现原理-动态代理CGLib代理
  5. CXF与Web项目集成---without Spring
  6. gpg96244qs1屏驱动起来了
  7. 13种重要的云原生工具,让交付过程更快
  8. html没有代码补全 vscode_借助clangd实现VSCode C++代码补全
  9. string字符串内容倒叙_面试官:string、stringbuffer和stringbuilder都不会,我招你干什么?...
  10. 使用docker方式安装etcd集群,带TLS证书
  11. chainmaker 区块链配置文件位置 版本号
  12. simulink过零检测的作用
  13. ArduinoUNO实战-第十二章-累加器实验
  14. 计算机网络 互联网使用的安全协议
  15. 利用Nginx反向代理解决服务器80端口被封
  16. 解决 Web、软件 视频播放黑屏
  17. S3C2440之字符设备驱动详解
  18. java发送lrc文件格式_lrc歌词文件格式
  19. python浪漫告白源代码_python七夕浪漫表白源码
  20. Django 邮箱设置

热门文章

  1. [Redux/Mobx] 什么是单一数据源?
  2. [react] react中setState的第二个参数作用是什么呢?
  3. react学习(37)----获取子组件得实例
  4. [css] 什么是脱离文档流?有什么办法可以让元素脱离标准的文档流?
  5. [css] 使用css实现彩虹的效果
  6. “约见”面试官系列之常见面试题之第五十五篇之清除浮动的方法(建议收藏)
  7. 前端学习(1900)vue之电商管理系统电商系统之渲染添加用户的表单自定义邮箱的规则
  8. 前端学习(1376):app.use方法
  9. 前端学习(1310):http协议
  10. 前端学习(219):css伪类选择器