JSP出现中文乱码问题解决方法详解_JSP编程

来源:脚本之家  责任编辑:小易  

www.zgxue.com防采集请勿采集本网。

在介绍方法之前我们首先应该清楚具体的问题有哪些,笔者在本博客当中论述的JSP中文乱码问题有如下几个方面:页面乱码、参数乱码、表单乱码、源文件乱码。下面来逐一解决其中的乱码问题。

  jsp教程 中 actionform中文乱码问题解决方法 先我们来了解一下actionform actionform概念 actionform用于封装用户的请求参数,而请求参数是通过jsp页面的表单域传递过

一、JSP页面中文乱码

  自己做测试的时候用到jsp/servlet 向mysql中写数据,但是中文总是乱码,今早纠结了半天才搞定,分享给大家我的解决办法 首先看是从什么地方开始出现的乱码,只要统一编

在JSP页面中,中文显示乱码有两种情况:一种是HTML中的中文乱码,另一种是在JSP中动态输出的中文乱码。

怎么感觉不是你问问题,而是让我们限时做出来给答案啊。 乱码的问题就2步。 按流程 String( str.getBytes(),"uft-8");类似这样的方法,来看到底是哪种乱码的情况。

先看一个JSP程序:

10. 注意URL和中文乱码,显然上边步骤7的方法不行了 11.修改d.jsp代码如下 12.再次运行,一切正常 13.步骤11是从代码上解决乱码的问题,但是每次get方式都要这么处理,显

<%@ page language="java" import="java.util.*" %><html><head><title>中文显示示例</title> </head> <body>这是一个中文显示示例:<%String str = "中文";out.print(str); %></body></html>

解决,在这里 我没有写详细的步骤,只是说了大致的修改方法,大家可以百度一下方法的详细步骤,不出意外的话都可以解决。 以上这篇jsp传参 servlet接收中文乱码问题的解决方法

上面这个JSP程序看起来好像是在页面显示几句中文而且标题也是中文。运行后在浏览器中显示如图所示

JSP 中文乱码处理解决方案 初学JSP,尤其是Tomcat环境(GlassFish默认UTF-8,则不存在此类问题),经常会因为中文汉字字符集设置问题导致中文乱码,本文就这一问题提出解决

原因在于没有在JSP中指定页面显示的编码,消除乱码的解决方案很简单上面代码中page命令修改成如下所示即可

filter-name>EncodingFilter</filter-name>url-pattern>/*</url-pattern>/filter-mapping> 以上这篇jsp用过滤器解决中文乱码问题的方法就是小编分享给大

要在代码前面加上这样一段代码就行了 <%@ page contentType="text/html;charset=GB2312" %>

<%@ page language="java" import="java.util.*" contentType="text/html; charset=GB2312" %><html><head><title>中文显示示例</title> </head> <body>这是一个中文显示示例:<%String str = "中文";out.print(str); %></body></html>

就不会出现乱码,下面以uft-8(个人认为最好)为例,详细说明: 1、如果乱码是从jsp页面出 2)如果mysql版本是4.x以上,数据库中还是出现乱码,有以下两种解决方法: 一种是在连接

再次运行乱码消失,原理就是向页面指定编码为GB2312,那么页面就会按照此编码来显示,于是乱码消失。

出现乱码。二、Java/JSP中文乱码的解决方法前面已经提到了Java程序与其他媒介交互时字符和字节的转换过程,如果这些转换过程中容易产生乱码。解决这些乱码问题的关键

二、URL传递参数中文乱码

常见问题。解决办法:页面指定编码 UTF-8 ,两处。表单提交方式 postjava接收端 用 new String(getBytes(ISO-8859-1),设置tomcat的urlencode,这种方式不推荐。

一般情况下在使用get方法提交表单的时候传递的参数如果是中文的话很可能会出现乱码。

name"); %> <body>     <%=name%> </body> 现象:中文乱码,比如“??????” 解决方法如下: 方法一: 1. 在b.jsp中把page

下面是一个示例程序

ng key=newng(request.getParameter("keyword").getBytes("iso8859-1"),"utf-8"); 不行的话弄个过滤器~!!

要在代码前面加上这样一段代码就行了 <%@ page contentType="text/html;charset=GB2312" %>

<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%><html><head> <title>URL传递参数中文处理示例</title></head><%String param = request.getParameter("param");%><body><a href="URLCharset.jsp?param='中文'" rel="external nofollow" >请点击这个链接</a><br>你提交的参数为:<%=param%></body></html>

方法比较特殊,仅仅转换这个中文字符串或者设置JSP页面显示编码都是不能解决问题的 的方法获取,但是当表单中出现中文数据的时候就会出现乱码。 示例代码如下 <%@ p

上面这个JSP程序的功能就是通过一个URL链接向自身传递一个参数,这个参数是中文字符串,这个程序的运行效果如下图

对于URL传递中文参数乱码这个问题,其处理方法比较特殊,仅仅转换这个中文字符串或者设置JSP页面显示编码都是不能解决问题的,需要修改Tomcat服务器的配置文件才能解决问题。在这里修改Tomcat的conf目录下的server.xml配置文件,具体改后的代码如下

<Connector port="8080" protocol="HTTP/1.1" URIEncoding="gb2312" connectionTimeout="20000" redirectPort="8443" />

在原来代码中添加URI编码设置URIEncoding=“gb2312”即可,重启Tomcat服务器可以得到正确的页面。其原理也和上面的情况类似,就是向程序指明编码类型,然后显示就正常了。

三、表单提交中文乱码

对于表单的数据可以使用request.getParameter(“”)的方法获取,但是当表单中出现中文数据的时候就会出现乱码。

示例代码如下

<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%><html><head> <title>Form中文处理示例</title></head> <body><font size="2">下面是表单内容:<form action="AcceptFormCharset.jsp" method="post">用户名:<input type="text" name="userName" size="10"/>密 码:<input type="password" name="password" size="10"/><input type="submit" value="提交"></form> </font></body></html>

在上面的表单当中想AcceptFormCharset这个页面提价两项数据,下面是AcceptFormCharset.jsp的内容:

<%@ page language="java" import="java.util.*"contentType="text/html;charset=gb2312"%><html><head><title>Form中文乱码</title></head><body><font size="2"> 下面是表单提交以后用request取到的表单数据:<br><%String userName = request.getParameter("userName"); String password = request.getParameter("password"); out.println("表单输入userName的值:" + userName + "<br>"); out.println("表单输入password的值:" + password + "<br>"); %> </font></body></html>

在上面的程序中,如果表单输入没有中文,则可以正常的显示当输入的数据中有中文的时候,得到的结果如图所示。

产生种结果的原因是Tomcat中对于post方法提交的表单采用的默认编码为ISO-8859-1,而这种编码格式不支持中文字符。对于这个问题可以采用转换编码格式的方法来解决,现在对AcceptFromCharset这个页面改动如下:

<%@ page language="java" import="java.util.*"contentType="text/html;charset=gb2312"%><html><head><title>Form中文乱码</title></head><body><font size="2"> 下面是表单提交以后用request取到的表单数据:<br><%String userName = request.getParameter("userName"); String password = request.getParameter("password"); out.println("表单输入userName的值:" + new String(userName.getBytes("ISO-8859-1"), "gb2312")+ "<br>"); out.println("表单输入password的值:" + new String(password.getBytes("ISO-8859-1"), "gb2312")+ "<br>"); %> </font></body></html>

经过这样的转换编码以后,所有的中文输入都可以用request对象正常取出。在上面这个程序中,第四行和第五行是转换编码格式的关键,先从ISO-8859-1格式的字符串中取出字节内容,然后在用GB2312的编码格式重新构造一个新的字符串。这样就可以支持中文变淡输入的正常取值和显示。改进以后程序运行结果如下

经过上面的更改编码格式的处理,表单的中文输入乱码问题已经得到解决。但是如果上面的表单中的输入项不止是两个,那么每个输入项都需要进行编码转换,那样就很麻烦了。这是我们就用到了大名鼎鼎的过滤器filter了。关于这里的内容大致的思虑和上面的一样具体做法请参照笔者的另一篇文章。

四、Eclipse中JSP文件中文乱码

在Eclipse或者MyEclipse中由于默认的JSP编码格式为ISO-8859-1,所以当打开由其他编辑器编辑的JSP文件时会出现乱码,如图所示

对于这个问题我们只需要更改一下Eclipse或者是MyEclipse中对JSP的默认编码就可以了,修改的地方(我的MyEclipse版本为11)如图所示

PS

在Eclipse或者MyEclipse当中JSP文件默认的编码为ISO-8859-1,所以在JSP代码中间如果出现中文就不能保存,例如如下代码

<%@ page language="java" import="java.util.*" %><html><head><title>中文显示示例</title> </head> <body>这是一个中文显示示例:<%String str = "中文";out.print(str); %></body></html>

解决,在这里 我没有写详细的步骤,只是说了大致的修改方法,大家可以百度一下方法的详细步骤,不出意外的话都可以解决。 以上这篇jsp传参 servlet接收中文乱码问题的解决方法

修改后在保存的时候会提示如下:

现这个提示的原因在于JSP源文件中有ISO=8859-1编码无法识别的中文字符,对于这个问题,解决办法就是在JSP页面中声明页面编码格式即可。声明后代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="GB2312" %><html><head><title>中文显示示例</title> </head> <body>这是一个中文显示示例:<%String str = "中文";out.print(str); %></body></html>

其中第一行中pageEncoding=“gb2312”指明了JSP页面编码采用GB2312,这样就可以正常保存JSP的源文件了。

遇到问题首先分析问题出现的原因,只有知道了原因才能去解决,学习分析问题的来源远比解决这个问题重要的多。

乱码问题的原因就是程序(Eclipse也好,浏览器也罢)的编码没有和编程人员的编码进行统一,(就像你和一个不懂中文的人用中文交流他当然不懂了)那么解决这个问题只需要将编程人员想要的编码告诉程序就可以了,以上解决乱码问题的种种方法都可以说是一种声明编码的过程,也就是说乱码问题终极解决方案就是:转码。这里的转码要么是编程人员手动转,要么就是声明一下让程序去转,换句话说就是:和不懂中文的交流,要么让他学中文,要么你就去学习他的语言。

生活就是编程,编程就是生活,同之,通之!!!

到此这篇关于JSP出现中文乱码问题解决方法详解的文章就介绍到这了,更多相关JSP中文乱码问题解决方法内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

程序遇到问题应该一步步找到问题的所在的,首先,用表单方式提交需要将method设为Post方式,get方式是不能传递中文的。其次,接收数据的时候需要设置request, request.setCharacterEncoding("gbk");获得传递的参数,String name = request.getParameter("name");在这里可以看下是否中文能够正确传递,如果可以的话就再看最后插入到mysql中的insert语句。按照以上步骤测试,如果还不能解决的话可以联系我tianligen@msn.com内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • jsp用过滤器解决中文乱码问题的方法
  • jsp对url链接中的中文乱码处理方法总结
  • jsp利用过滤器解决request中文乱码问题
  • jsp页面中超链接传递中文参数出现乱码问题解决方法
  • jsp中文乱码常见3个例子及其解决方法
  • 分享jsp中文乱码解决方法
  • jsp页面传参出现中文乱码的解决方案
  • jsp之间传参数接受中文有乱码问题解决方法
  • jsp地址栏传中文显示乱码解决方法分享
  • spring mvc实现restful返回json格式数据实例详解
  • jsp利用application统计在线人数的方法
  • java新手入门的30个基本概念
  • 建立jsp操作以提高数据库访问的效率
  • jsp教程(五)-jsp actions的使用下
  • java 中spring task定时任务的深入理解
  • jsp 自定义注解及记录操作日志
  • java中四种xml解析技术
  • jdbc 入门(一)
  • jsp+jquery使用ajax方式调用json的实现方法
  • 怎么解决jsp中文乱码问题
  • 用户登录成功之后跳转到的jsp页面显示中文乱码,怎么解决?
  • jsp中文乱码
  • jsp 中 ActionForm中文乱码问题解决方法
  • jsp 中 ActionForm中文乱码问题解决方法
  • jsp和servlet操作mysql中文乱码问题的解决办法
  • mysql+jdbc+jsp 中文出现乱码,求解决方案,如果要改配置文件的...
  • jsp中处理中文乱码的解决方案有哪些
  • jsp传参 servlet接收中文乱码问题的解决方法
  • jsp中处理中文乱码的解决方案有哪些
  • jsp用过滤器解决中文乱码问题的方法
  • jsp的中文乱码问题怎么解决
  • jsp和servlet操作mysql中文乱码问题的解决办法
  • 浅谈如何解决Java/JSP中文乱码问题
  • jsp表单提交的中文全是乱码
  • JSP页面传值中文乱码的简单解决方法
  • jsp关于URL传递中文时出现乱码的解决方法
  • jsp 表单提交中文数据乱码怎么解决呢?
  • 分享JSP中文乱码解决方法
  • eclipse导入JSP,中文显示乱码怎么解决?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页jsp用过滤器解决中文乱码问题的方法jsp对url链接中的中文乱码处理方法总结jsp利用过滤器解决request中文乱码问题jsp页面中超链接传递中文参数出现乱码问题解决方法jsp中文乱码常见3个例子及其解决方法分享jsp中文乱码解决方法jsp页面传参出现中文乱码的解决方案jsp之间传参数接受中文有乱码问题解决方法jsp地址栏传中文显示乱码解决方法分享spring mvc实现restful返回json格式数据实例详解jsp利用application统计在线人数的方法java新手入门的30个基本概念建立jsp操作以提高数据库访问的效率jsp教程(五)-jsp actions的使用下java 中spring task定时任务的深入理解jsp 自定义注解及记录操作日志java中四种xml解析技术jdbc 入门(一)jsp+jquery使用ajax方式调用json的实现方法jsp el表达式详细介绍jsp下页面跳转的几种方法小结jsp生成页面验证码的方法[附代码在jsp页面如何获得url参数spring mvc 框架搭建配置方法及详jsp web.xml文件的作用及基本配置jsp自定义标签taglib实现过程重点servlet+jsp实现图片或文件的上传将html页改成jsp的两种方式jsp 连接mysql配置与使用jsp中out对象的实例详解tomcat启动成功访问主页失败的原因解决方java eclipse 启动参数jsp漏洞大观详解struts2中对未登录jsp页面实现拦截功用jsp操作cookiespring中常用注解的详细介绍基于jsp编译器基本语法的使用详解jsp和jstl获取服务器参数示例java soapheader的web service
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved