`
beeyon
  • 浏览: 23270 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

jsp GB2312乱码问题

    博客分类:
  • Java
阅读更多

由于刚开始学习java,对解决编码转换还不是很了解,所以花了一天的时间查找资料,实例等等。

在项目中遇到用iso-8859-1的编码处理,包括数据库等都是,项目也是英文版面的,所以按道理没有中文的信息,但是市场部那边说也要加一个中文的查找功能,问题就出来了,iso-8859-1 不支持中文,

服务器端处理编码都是iso-8859-1:

请求页面jsp1:这个是默认搜索关键字是否存在

<%@ page contentType="text/html;charset=gb2312" %> 
<html>
<head>
<title>Search</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<form action="url" method="post">
<input type="text" name="txtSearchWords"/>
<input type="submit" value="submit"/>
</form>
</body>
</html>

如果不加上 下面这代码,则无法搜索

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

 

如果存在,在页面2:显示,如果这边不使用gb2312 作为输出的,将显示为乱码.

<%@ page contentType="text/html;charset=gb2312" %> 
<html>
<head>
<title>Search Result</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<a href="url?words=中文">中文</a>
</body>
</html>

 为了显示中文,只好把content-type设为gb2312

页面3:默认编码是iso-8859-1,如果页面2不指定GB2312 这边不会出现乱码,但是页面2显示的是乱码,如果页面2指定了gb2312,页面3不指定gb2312,则页面三也会出现乱码,但是在页面3 上删掉乱码,重新输入中文,提交,页面4不指定gb2312的话,显示的是正常的中文.为了页面3不出现乱码,我们指定了gb2312,页面4也指定gb2312,但是需要在页面三上的指定form 属性 accept-charset="iso-8859-1".这样就可以正常显示

 

By the way:

如此的代码在Firefox等正常的浏览器下没有任何问题,但是遇到IE这个变态浏览器就不灵光了,我们还得用点不入流的手段Hack一下:

<form method="post" action="..." accept-charset="utf-8" onsubmit="document.charset='utf-8';">
...
</form>

<%@ page contentType="text/html;charset=gb2312" %> 
<html>
<head>
<title>Search</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<form action="url" method="post" accept-charset='iso-8859-1' 
                            onsubmit='document.charset="iso-8859-1"'>
<input type="text" name="txtSearchWords" value="中文"/>
<input type="submit" value="submit"/>
</form>
</body>
</html>

但是结果页面需要转换编码,用

try{
String strcn=request.getParamter("txtSearchWords");
strcn=new String(strcn.getBytes("iso8859_1"),"GB2312");

}
catch(Exception e)
{
throw e.getMessage();
}
 

然后输出页面4

<%@ page contentType="text/html;charset=gb2312" %> 
<html>
<head>
<title>Search</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
中文
</body>
</html>
分享到:
评论

相关推荐

    解决JSP中文乱码问题

    解决 JSP 中文乱码问题 解决 JSP 中文乱码问题是一个很常见的问题,在 JSP 开发过程中,经常出现中文乱码的问题,可能一至困扰着大家。下面我们将详细讨论 JSP 中文乱码问题的成因和解决方法。 JSP 中文乱码问题的...

    JSP中文乱码问题解决办法

    JSP 中文乱码问题解决办法 JSP 页面中中文乱码问题是指在 JSP 页面中使用中文时,页面显示乱码的现象。这种问题的解决办法可以从多方面入手,包括设置页面的字符编码、使用 POST 方式提交表单、使用 GET 方式提交...

    jsp页面提交乱码问题

    ### jsp页面提交乱码问题解析 #### 一、乱码问题概述 在进行Web开发时,特别是使用Java Server Pages (JSP)技术时,经常会遇到表单提交数据出现乱码的问题。这个问题主要出现在从客户端(如浏览器)提交的数据到...

    jsp上传组件smartUpload_gb2312_jar包

    jsp上传组件smartUpload_gb2312_jar包,解决gb2312编码的乱码问题

    如何解决JSP页面显示乱码问题

    ### 如何解决JSP页面显示乱码问题 在JSP(Java Server Pages)开发中,中文乱码问题一直是开发者常见的挑战之一。这类问题通常源于不同的编码格式不一致导致的字符集冲突。本文将针对JSP页面显示乱码、表单提交中文...

    jsp乱码解决方案 本方案解决了jsp常见的乱码问题

    本文将详细介绍如何有效地解决JSP中的乱码问题,并通过具体的代码示例来展示解决方案。 #### 二、乱码产生的原因 在深入探讨解决方案之前,首先需要了解乱码产生的原因。通常来说,乱码是由于客户端和服务器端之间...

    Jsp乱码问题解决

    ### JSP乱码问题解决 #### 一、JSP页面显示乱码 在JSP页面开发过程中,中文乱码是一个常见的问题。这个问题主要是由于服务器端和客户端(浏览器)的编码设置不一致导致的。 **原因分析:** 1. **服务器编码设置...

    字符串乱码解决gb2312

    标题“字符串乱码解决gb2312”和描述“字符串乱码解决 gb2312 培训机构资料”指向了在处理中文字符时可能遇到的编码问题,尤其是与GB2312编码相关的挑战。GB2312是中国大陆广泛使用的一种汉字编码标准,但在不同系统...

    解决jsp提交乱码的问题

    ### 解决JSP提交乱码的问题 在进行Web开发时,经常会遇到中文字符编码的问题,尤其是在使用JavaServer Pages(JSP)技术时。本篇文章将详细介绍如何解决JSP页面提交时出现的乱码问题,包括GET请求和POST请求两种...

    JSP中文乱码问题分析及处理方法

    ### JSP中文乱码问题分析及处理方法 #### 一、问题根源剖析 JSP(Java Server Pages)作为Web开发中的一种技术,广泛应用于动态网页的生成。然而,在处理中文字符时,JSP经常会遇到“乱码”问题,即中文字符无法...

    几种常用解决jsp中文乱码的方案

    JSP 中文乱码是动态网站开发中经常遇到的问题,本文将从产生 JSP 中文乱码的四种类型入手,分析乱码产生的原因,并给出消除乱码的具体方法。 一、页面中文乱码的处理 JSP 采用 ISO-8859-1 作为默认的页面字符编码...

    jsp Unsupported encoding- gb2312 错误原因.docx

    需要注意的是,gb2312 编码只能正确地显示简体中文字符,对于繁体中文字符可能会出现乱码。因此,如果您的 JSP 页面需要显示繁体中文字符,需要使用其他编码标准,例如 Big5 编码。 jsp Unsupported encoding:gb...

    JSP中文乱码问题完全解决方案(罗列了在JSP学习中出现的各种乱码问题)

    ### JSP中文乱码问题完全解决方案 #### 一、引言 在JSP开发过程中,中文乱码问题一直是困扰开发者的一大难题。由于JSP页面、请求参数等涉及到多种编码方式,如Unicode、GB2312、GBK以及UTF-8等,如果不进行适当的...

    java项目jsp中乱码问题解决

    Java的默认编码是Unicode,而中文文件和数据库通常使用GB2312或Big5等编码格式,这导致了乱码的出现。 首先,JSP输出中文乱码的问题通常是由于没有明确指定JSP页面的字符编码。解决这个问题的方法是在JSP页面顶部...

    JSP利用过滤器解决request中文乱码问题.docx

    JSP利用过滤器解决request中文乱码问题 JSP中requestgetParameter中文乱码问题是经常遇到的问题,解决这个问题有多种方法,但利用过滤器解决request中文乱码问题是其中最有效的一种方法。本文将详细介绍如何使用...

    有关JSP页面乱码问题的解决

    ### 有关JSP页面乱码问题的解决 在开发基于Java的应用系统时,尤其是在处理中文字符的情况下,JSP页面中的乱码问题是常见的技术难题之一。本文将深入探讨JSP页面中可能出现的乱码问题及其解决方案,并针对不同场景...

    解决JSP中文乱码问题.doc

    在开发Java Web应用程序时,尤其是使用JSP技术时,开发者经常会遇到中文乱码的问题。这是因为Java的内核和class文件基于Unicode编码,虽然确保了跨平台性,但同时也可能导致与不同编码系统的兼容性问题。本文将详细...

    解决jsp中文乱码问题(转)

    为解决此问题,可以在处理请求的JSP页面中,使用`request.setCharacterEncoding("gb2312")`方法设置请求的编码格式,确保与服务器处理的编码一致。例如: ```jsp ; charset=gb2312"%&gt; request.setCharacter...

Global site tag (gtag.js) - Google Analytics