jsp编译乱码(jsp处理乱码)

本文目录一览:

怎么解决jsp中文乱码问题,我要疯了

1、JSP页面出现的中英文乱码:

我们的PageCharset.jsp页面代码如下所示:

[html] view plain copy

%@ page language=”java” import=”java.util.*”%

html

head

title中文显示示例/title

/head

body

中文显示的示例。

%

out.print(“这里是用jsp输出的中文”);

%

/body

/html

当我们在保存我们的文件的时候会出现下面的提示:

整因为在我们的MyEclipse中默认的编码为ISO-8859-1,而ISO-8859-1不支持中文的编码,所以jsp页面代码如果出现中文就不能保存了。对于这样的错误,我们只要在页面上加上支持中文的编码格式就可以了,在jsp页面中加上pageEncoding=“gb2132” 支持中页面的编码格式就可以了。这样我们就能正常保存我们的jsp源文件了。

2、URL传递参数中文乱码

[html] view plain copy

%@ page language=”java” import=”java.util.*” pageEncoding=”gb2312″%

html

head

titleURL传递参数中英文处理示例/title

/head

%

String param = request.getParameter(“param”);

%

body

a href=”URLCharset.jsp?param=’中文'”请单击这个链接/a

您提交的这个参数为:%=param %

/body

/html

启动tomcat运行结果出现url传递的中文乱码:

这里我们需要配置tomcat服务器文件,才能解决这个问题。具体方法是,在tomcat的conf目录下找到server.xml配置文件,找到如下代码

[html] view plain copy

span style=”font-size:18px”  Connector port=”8080″ protocol=”HTTP/1.1″

connectionTimeout=”20000″

redirectPort=”8443″  //span

在后面添加上编码方式,URIEncoding=”gb2312″ 重新启动tomcat问题就解决了。

3、表单提交中问乱码

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

我们的提交表单的页面,FormCharset.jsp页面如下:

[html] view plain copy

%@ page language=”java” contentType=”text/html; charset=GB18030″

pageEncoding=”GB18030″%

!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “”

html

head

meta http-equiv=”Content-Type” content=”text/html; charset=GB18030″

titleForm中文处理示例/title

/head

body

下面是表单内容:

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

/body

/html

我们的AcceptFormCharset.jsp页面:

[html] view plain copy

%@ page language=”java” contentType=”text/html; charset=GB18030″

pageEncoding=”GB18030″%

!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “”

html

head

meta http-equiv=”Content-Type” content=”text/html; charset=GB18030″

titleForm中文处理示例/title

/head

body

下面是表单提交以后request取到的表单的数据:br

%

out.println(“表单输入的userName值为:” + request.getParameter(“userName”) +”br”);

out.println(“表单输入的pasword值为:” +request.getParameter(“password”) + “br”);

%

/body

/html

提交表单:

结果如下:

我们看到我们在表单中的中文数据出现了乱码,为什么楚翔这种情况呢?是因为我们的tomcat中,对于以post方式提交的表单编码格式默认为ISO-8859-1的编码格式,而这种编码格式是不能编码中文的,所以就会出现乱码的现象了。对于这种情况,我们可以对表单中的数据进行处理,在取得表单参数的时候设置编码方式,我们更改了我们的接受表单数据的页面如下所示:

[html] view plain copy

%

String userName = request.getParameter(“userName”);

String passWord = request.getParameter(“password”);

out.println(“表单输入的userName值为:” +  new String(userName.getBytes(“ISO-8859-1″),”gb2312″)+”br”);

out.println(“表单输入的pasword值为:” + new String(passWord.getBytes(“ISO-8859-1″),”gb2312″)+”br”);

%

这样就得到我们想要的效果啦:

4、数据库操作中文乱码

我们在建立数据库的时候,最好是能选择支持中文编码格式,最好是能和jsp页面编码格式保持一致,这样就尽可能的减少数据库操作中文乱码的问题,最开始的连接数据库的时候,编写好数据库的编码策略,也就是使用这种形式的URL:jdbc:Oracle:thin:@localhost:1521:TEST;userEnicode=true;characterEncoding=gb2312; 这样我们选择的数据库的编码和我们的jsp编码就一致了。

写入到数据库的时候,数据库中中文乱码:

但是如果我们在最开始的时候没有对数据库的编码进行设置,并且我们的数据库中已经有大量的数据的话,我们再向数据库中写入中文数据,数据库中的中文显示为乱码。在写入数据的时候出现乱码,是因为我们在处理表单的时候没有对字符的编码设置,对于这种情况,我们在jsp中或servlet中加入:

rquest.setCharacterEncoding(“gb2312”);//处理表单请求的时候设置编码。

这样再看我们的数据库,插入的中文字段就不会乱码了。

从数据库中读出中文乱码:

数据库中的中文出现乱码,就是在读取数据库的时候进行转码,这样显示就不会乱码了。我们整理这样的一个转码函数:

public String encoder(String str) throws UnsupportedEncodingException

{

String result = new String(str.getBytes(“ISO-ISO-8859-1)”),”gb2312″);

}

5 在myeclipse开发工具中打开中文显示乱码

在myeclipse中默认的编码方式为ISO-8859-1,所以打开有其他编译器编码的jsp页面就会出现乱码,是因为两个编译器保存源文件编码格式不同,在UltralEdit可以支持中文,但是在Eclipse对jsp文件的保存方式为ISO-8895-1,这种编码不支持中文,所以就会出现乱码。

对于这种情况,我们可以更改myeclipse默认的编码方案,myeclipse-Window-Preferences-General-Content types-Test-JSP

这样问题就解决啦!

6 Filter批量设置编码格式

我们对于每一个jsp或servlet我们都要设置编码格式,效率有些低,我们的servlet的Filter解决了我们的问题。在前篇写过Filter的解决中文乱码问题的文章,在这里就不赘述了。

需要强调的一点,开始使用Java model1模型的时候,我们在web.xml中配置只需要配置好jsp页面就可以了,在model2模型中我们使用servlet作为控制器,我们就需要在Filter的配置文件web.xml中配置好servlet的设置,对所有的servlet处理的表单编码进行设置。

[html] view plain copy

filter

filter-nameCharsetEncodingFilter/filter-name

filter-classcom.bjpowernode.drp.util.filter.CharsetEncodingFilter/filter-class

init-param

param-nameencoding/param-name

param-valueGBK/param-value

/init-param

/filter

filter-mapping

filter-nameCharsetEncodingFilter/filter-name

url-pattern*.jsp/url-pattern

/filter-mapping

filter-mapping

filter-nameCharsetEncodingFilter/filter-name

url-pattern/servlet/*/url-pattern

/filter-mapping

关于jsp被tomcat编译后的网页出现汉字乱码。

%@ page contentType=”text/html; charset=UTF-8″ language=”java” %

然后用记事本打开该jsp文件,另存为,选择编码为UTF-8。

jsp中处理中文乱码的解决方案有哪些

1.新建两个JSP页面

2

2.在c.jsp中新建一个表单

3

3.在d.jsp中接收这个值

4.运行c.jsp

5.输入带中文的参数,点击提交

6.发现接收过来的中文是乱码,英文正常

解释下:JSP默认参数在传输过程中使用的编码为ISO-8859-1

而两个页面使用的都是UTF-8 的编码

7.在d.jsp中新增如下代码

8.再次重复上边的操作,发现中文正常了

9.把c.jsp中的Post 修改为get方式提交表单

10. 注意URL和中文乱码,显然上边步骤7的方法不行了

11.修改d.jsp代码如下

12.再次运行,一切正常

13.步骤11是从代码上解决乱码的问题,但是每次get方式都要这么处理,显得很麻烦。

还有一种就是修改tomcat的server.xml配置文件

参照tomcat帮助文档中的/docs/config/index.html 文档的useBodyEncodingForURI 属性。

为Connector 节点添加useBodyEncodingForURI=”true” 属性即可。

如何解决jsp中文变乱码

Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。基于这种乱码,建议在Java文件中尽量不要写中文(注释部分不参与编译,写中文没关系),如果必须写的话,尽量手动带参数-ecoding GBK或-ecoding gb2312或-ecoding UTF-8编译;对于JSP,在文件头加上%@ page contentType=”text/html;charset=GBK”%或

%@ page contentType=”text/html;charset=gb2312″%基本上就能解决这类乱码问题。

jsp页面中文乱码,怎么解决

刚开始学习jsp的程序员都会遇到这样一个问题,就是网页上的中文无法显示.总结了以下几条方法。

1、在jsp页中加入一条语句:

%@ page contentType=”text/html;charset=gb2312″ %中文显示就正常了。

2、对于从网页中的文本框通过String parameter = request.getParameter(“parameter”);方式获得的字符串,均是8859_1的编码,

如果想把它显示在网页上就必须得用parameter = new String(parameter.getBytes(“8859_1”),”gb2312”)进行转换,windows和linux这两种系统都是一样的。

有一个简单方法,就是在 getParameter() 方法获取参数之前,使用request.setCharacterEncoding(“GB2312”);,将提交的信息转化为 GB2312 编码。

3、但是对于将数据写入数据库的问题,采取的方式就不同了:

windows下,必须要采用该字符串转换再插入数据库,而linux下就不需要,而是直接把8859_1编码的字符插入。

如果从数据库中读出的数据,对于windows因为在插入时已经做了转换,所以读出时已经是gb2312的,当把它显示在网页上时,不需要做编码转换,而 linux上的mysql中的数据是8859_1的所以要做编码的转换。

4、 如果你给某个字符串变量赋予一个中文字符串的值,那么在你取出他时,在网页上的显示是不需要做字符转换的,

但是如果你要在linux下做字符的比较,则还需要把字符做parameter = new String(parameter.getBytes(“gb2312”),”8859_1”)的转换。

5、长江电力网站解决中文问题的方法是:

1)在catalina.sh文件中的相关位置添加下面一行

-Dfile.encoding=GBK \

2)在每个jsp文件的最前面添加下面两行

%@ page contentType=”text/html; charset=GBK” %

%request.setCharacterEncoding(“GBK”);%

原创文章,作者:简单一点,如若转载,请注明出处:https://www.506064.com/n/127812.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
简单一点简单一点
上一篇 2024-10-03 23:16
下一篇 2024-10-03 23:16

相关推荐

  • Python zipfile解压文件乱码处理

    本文主要介绍如何在Python中使用zipfile进行文件解压的处理,同时详细讨论在解压文件时可能出现的乱码问题的各种解决办法。 一、zipfile解压文件乱码问题的根本原因 在P…

    编程 2025-04-29
  • Python爬虫乱码问题

    在网络爬虫中,经常会遇到中文乱码问题。虽然Python自带了编码转换功能,但有时候会出现一些比较奇怪的情况。本文章将从多个方面对Python爬虫乱码问题进行详细的阐述,并给出对应的…

    编程 2025-04-29
  • Python3乱码转中文

    本文将详细介绍如何转换Python3中的乱码为中文字符,帮助Python3开发工程师更好的处理中文字符的问题。 一、Python3中文乱码的原因 在Python3中,中文字符使用的…

    编程 2025-04-29
  • Win10的Powershell乱码问题

    在Windows 10系统中,Powershell作为一种广泛应用的命令行工具,被越来越多的人所熟知和使用,但是有时候会出现乱码的情况,让人十分困扰。本文将从多方面进行详细阐述,帮…

    编程 2025-04-28
  • Axios请求数据乱码问题解决

    本文将从以下三个方面详细阐述Axios请求数据乱码问题的原因和解决方法: 一、设置请求头 Axios请求数据乱码的原因可能是因为请求时没有设置请求头的编码方式,而且默认的编码方式是…

    编程 2025-04-28
  • 为什么web项目的欢迎页必须是jsp?

    在web项目中,欢迎页通常是用户首次访问的页面。而对于这个页面的选择,我们通常会选择jsp作为欢迎页,其原因是什么呢? 一、JSP的优势 JSP与HTML和CSS的结合,可以实现动…

    编程 2025-04-25
  • 解决Visual Studio中文乱码问题的方法

    在使用Visual Studio进行编程时,常常会遇到中文乱码的问题。这些问题可能会导致代码难以理解和维护,因此我们需要找到有效的解决方案,以避免出现这些问题。在本文中,我们将介绍…

    编程 2025-04-24
  • Matlab注释乱码问题分析

    一、UTF-8编码问题导致注释乱码 Matlab默认使用UTF-8编码方式,当我们在注释中输入非ASCII字符时,可能会出现乱码的情况。解决这个问题的方法是使用unicode编码方…

    编程 2025-04-23
  • Idea输出乱码问题解决指南

    一、乱码的原因 在我们使用IDEA进行开发的过程中,常常会出现输出乱码的问题,这给我们的工作带来了很大的困扰。那么这些乱码问题到底是哪些原因造成的呢? 首先,有可能是因为源代码中存…

    编程 2025-04-23
  • JSP菜鸟教程详解

    一、JSP介绍 JSP全称Java Server Pages,是一种动态网页技术,它可以将Java代码嵌入HTML页面,实现动态页面的功能。 下面是一个JSP页面的简单示例: He…

    编程 2025-04-12

发表回复

登录后才能评论