jsp在谷歌浏览器乱码,jsp在谷歌浏览器乱码怎么解决

今天给各位分享jsp在谷歌浏览器乱码的知识,其中也会对jsp在谷歌浏览器乱码怎么解决进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

jsp在谷歌浏览器乱码,jsp在谷歌浏览器乱码怎么解决

本文目录

  1. 怎么解决JSP页面上的乱码
  2. 在jsp文件中的html显示乱码怎么解决
  3. JSP乱码一般有什么解决办法

一、怎么解决JSP页面上的乱码

刚开始学习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文件中的相关位置添加下面一行

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

<%@ page contentType="text/html; charset=GBK"%>

<%request.setCharacterEncoding("GBK");%>

二、在jsp文件中的html显示乱码怎么解决

在jsp文件中的html显示乱码是因为服务端和客户端的编码不一致导致的。

如果Java和JSP编译成class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。

下面的显示页面(display.jsp)就出现乱码:

<title>JSP的中文处理</title>

<meta http-equiv="Content-Type" content="text/html charset=gb2312">

<%out.print("JSP的中文处理");%>

只要在页面开始地方用下面代码指定字符集编码即可,在JSP页面中指定编码方式(gb2312),和浏览器解码方式设置相同,即在页面的第一行加上:

<%@ page contentType="text/html; charset=gb2312"%>,就可以消除乱码了。

<%@ page contentType="text/html; charset=gb2312"%>

<title>JSP的中文处理</title>

<meta http-equiv="Content-Type" content="text/html charset=gb2312">

<%out.print("JSP的中文处理");%>

<%@ page language="java" pageEncoding="gb2312"%>

<%@ page contentType="text/html;charset=iso8859-1"%>

<title>JSP的中文处理</title>

<meta http-equiv="Content-Type" content="text/html charset=gb2312">

<%out.print("JSP的中文处理");%>

第一处<%@ page language="java" pageEncoding="gb2312"%>的编码格式为jsp文件的存储格式。Eclipse会根据这个编码格式保存文件。并编译jsp文件,包括里面的汉字。

第二处编码为解码格式。因为存为gb2312的文件被解码为iso8859-1,这样如有中文肯定出乱码。也就是必须一致。而第二处所在的这一行,可以没有。缺省也是使用iso8859-1的编码格式。所以如果没有这一行的话,也会出现乱码。必须一致才可以。

第三处编码为控制浏览器的解码方式。如果前面的解码都一致并且无误的话,这个编码格式用不用设置都可以。有的网页出现乱码,就是因为浏览器不能确定使用哪种编码格式。因为页面有时候会嵌入页面,导致浏览器混淆了编码格式出现了乱码。

<%@ page language="java" pageEncoding="gb2312"%>

<%@ page contentType="text/html;charset= gb2312"%>

<title>JSP的中文处理</title>

<meta http-equiv="Content-Type" content="text/html charset=gb2312">

<%out.print("JSP的中文处理");%>

三、JSP乱码一般有什么解决办法

2.表单中或传递字符串:本来输入的汉字是正常的,但是提交后再显示出来是乱码,因为提交的一般是 ISO8859编码,所以显示的时候要转成GB2312编码:

String S=new String(rs.getString("news").getBytes("gb2312"),"ISO8859_1");

//rs.getString("news")为待转换的字符串

3.有的服务器端的语言环境如果设成简体中文的也可以解决此类问题

看看数据库中支持的是何种编码方式,用类似2中的方式作一下转换即可。

5.总之,用jsp开发,碰到乱码,你得分析是读的时候发生乱码,还是写的时候发生乱码,用2中的转换,基本就能解决问题,有些时候写的时候做一次转换,例如:

String S=new String(rs.getString("news").getBytes("gb2312"),"ISO8859_1");

String S=new String(rs.getString("news").getBytes("ISO8859_1"),"GB2312");

或者把ISO8859-1和GB2312的位置换一下,自己多试试,就能找到解决问题的办法。

将乱码问题分为三类JSP页面显示中文乱码;表单提交乱码;数据库应用乱码

1) JSP页面内输出中文时出现乱码

解决方案在JSP文件中使用page命令指定响应结果的MIME类型,如<%@ page language="java" contentType="text/html;charset=gb2312"%>

表单提交时(post和Get方法),使用request.getParameter方法得到乱码,这是因为tomcat处理提交的参数时默认的是iso-8859-1,表单提交get和post处理乱码问题不同,下面分别说明。

对post提交的表单通过编写一个过滤器的方法来解决,过滤器在用户提交的数据被处理之前被调用,可以在这里改变参数的编码方式,过滤器的代码如下:

package cn.gov.beijingit.util;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

public class SetCharacterEncodingFilter implements Filter{

* The default character encoding to set for requests that pass through this

protected String encoding= null;

* The filter configuration object we are associated with. If this value is

* null, this filter instance is not currently configured.

protected FilterConfig filterConfig= null;

* Should a character encoding specified by the client be ignored?

protected boolean ignore= true;

//--------------------------------------------------------- Public Methods

* Take this filter out of service.

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException{

// Conditionally select and set the character encoding to be used

if(ignore||(request.getCharacterEncoding()== null)){

String encoding= selectEncoding(request);

request.setCharacterEncoding(encoding);

// Pass control on to the next filter

chain.doFilter(request, response);

* Place this filter into service.

* The filter configuration object

public void init(FilterConfig filterConfig) throws ServletException{

this.filterConfig= filterConfig;

this.encoding= filterConfig.getInitParameter("encoding");

String value= filterConfig.getInitParameter("ignore");

} else if(value.equalsIgnoreCase("true")){

} else if(value.equalsIgnoreCase("yes")){

protected String selectEncoding(ServletRequest request){

<filter-name>Encoding</filter-name>

cn.gov.beijingit.util.SetCharacterEncodingFilter

<param-name>encoding</param-name>

<param-value>gbk</param-value>

<!--gbk或者gb2312或者utf-8-->

<param-name>ignore</param-name>

<param-value>true</param-value>

<filter-name>Encoding</filter-name>

<servlet-name>/*</servlet-name>

*注意filter元素要放在所有web.xml元素之前。

tomcat对post和get的处理方法不一样,所以过滤器不能解决get的乱码问题,它需要在其他地方设置。

打开<tomcat_home>\conf目录下server.xml文件,找到对8080端口进行服务的Connector组件的设置部分,给这个组件添加一个属性:URIEncoding="GBK"。修改后的Connector设置为:

<Connector port="8080" maxHttpHeaderSize="8192"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>

*注意修改后重新启动tomcat才能起作用。

3)数据库应用的乱码,本文还是以mysql为例

(1)修改配置文件<mysql_home>\my.init

将default-character-set=latin1修改为default-character-set=gbk

(2)对接受的中文字符重新编码,例

String name=requset.getParameter("name");

name= new String(name.getBytes("gbk"),"iso8859-1");

为了能让tomcat5.x能像tomcat4那样处理include页面,需要修改项目web-info/web.xml文件,把默认的字符集设置成gbk/gb2312就可以了,如:

<description>Special property group for JSP Configuration JSP example.</description>

<display-name>JSPConfiguration</display-name>

文章出处:DIY部落()

好了,关于jsp在谷歌浏览器乱码和jsp在谷歌浏览器乱码怎么解决的问题到这里结束啦,希望可以解决您的问题哈!

声明:信息资讯网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者东方体育日报所有。若您的权利被侵害,请联系 删除。

本文链接:http://www.gdxhedu.com/news/178714.html