今天在程序版本更新之后,发现了一个bug,页面查询的时候,提交到后台的中文是乱码。之前用form表单提交,是没有问题的, 后来因为项目需要,只能刷新查询后的显示结果,所以就放在一个iframe里面。 这样一来,就只能用参数来提交了。
多方寻找资料,加之实践,终于找到了解决方案
首先,在提交的时候,先用javascript 把中文给转换成UTF-8的编码, 函数如下
function EncodeUtf8(s1)
{
var s = escape(s1);
var sa = s.split("%");
var retV ="";
if(sa[0] != "")
{
retV = sa[0];
}
for(var i = 1; i < sa.length; i ++)
{
if(sa[i].substring(0,1) == "u")
{
retV += Hex2Utf8(Str2Hex(sa[i].substring(1,5)));
}
else retV += "%" + sa[i];
}
return retV;
}
function Str2Hex(s)
{
var c = "";
var n;
var ss = "0123456789ABCDEF";
var digS = "";
for(var i = 0; i < s.length; i ++)
{
c = s.charAt(i);
n = ss.indexOf(c);
digS += Dec2Dig(eval(n));
}
//return value;
return digS;
}
function Dec2Dig(n1)
{
var s = "";
var n2 = 0;
for(var i = 0; i < 4; i++)
{
n2 = Math.pow(2,3 - i);
if(n1 >= n2)
{
s += '1';
n1 = n1 - n2;
}
else
s += '0';
}
return s;
}
function Dig2Dec(s)
{
var retV = 0;
if(s.length == 4)
{
for(var i = 0; i < 4; i ++)
{
retV += eval(s.charAt(i)) * Math.pow(2, 3 - i);
}
return retV;
}
return -1;
}
function Hex2Utf8(s)
{
var retS = "";
var tempS = "";
var ss = "";
if(s.length == 16)
{
tempS = "1110" + s.substring(0, 4);
tempS += "10" + s.substring(4, 10);
tempS += "10" + s.substring(10,16);
var sss = "0123456789ABCDEF";
for(var i = 0; i < 3; i ++)
{
retS += "%";
ss = tempS.substring(i * 8, (eval(i)+1)*8);
retS += sss.charAt(Dig2Dec(ss.substring(0,4)));
retS += sss.charAt(Dig2Dec(ss.substring(4,8)));
}
return retS;
}
return "";
}
var url = "abc.do?....."
url = url + "&brand=" + EncodeUtf8(document.getElementById("brand").value);
document.frames["downFrame"].location=url;
提交到后台之后
在action里面,定义一个函数,用于将 iso-88591 转换成 UTF-8
private static String convertStringToUTF(String str) {
String returnString = "";
if (str == null)
return "";
try {
returnString = new String(str.getBytes("ISO-8859-1"), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return returnString;
}
String str = convertStringToUTF(StringHelper.convertStringNull(request.getParameter("brand")));
这样,str就是中文了,可以用于数据库查询了
至此,问题顺利解决!
分享到:
相关推荐
本文将深入探讨“JSP乱码”的多种解决方案,并提供实用的解决策略。 1. **理解字符编码的基本概念** - 字符编码是计算机对文字进行存储和处理的标准,常见的有ASCII、GBK、UTF-8等。 - JSP页面默认使用ISO-8859-1...
### jsp乱码解决方案 #### 一、引言 在Web开发中,特别是使用Java Server Pages (JSP)进行开发时,字符编码问题是一个经常遇到的技术难题。如果处理不当,很容易导致网页显示乱码,影响用户体验及数据的正确性。...
### jsp页面提交乱码问题解析 #### 一、乱码问题概述 在进行Web开发时,特别是使用Java Server Pages (JSP)技术时,经常会遇到表单提交数据出现乱码的问题。这个问题主要出现在从客户端(如浏览器)提交的数据到...
#### 三、表单提交乱码解决方案 ##### 3.1 表单提交乱码原因 当用户通过表单提交中文时,如果表单的编码与服务器端处理请求的编码不一致,则会导致中文乱码。 例如,在`submit.jsp`中,有一个简单的表单用于提交...
### JSP解决乱码与数据库乱码解决方案 #### 一、引言 在Web开发中,尤其是使用Java Server Pages (JSP)技术时,字符编码问题是开发者常常遇到的一个难题。字符编码错误会导致页面显示乱码,严重影响用户体验。本文...
本文将深入探讨JSP中文乱码问题的原因,并提供一系列解决方案。 一、原因分析 1. 字符集不匹配:在JSP文件、HTML文件、服务器、数据库等多个环节中,如果字符集设置不一致,就可能导致中文字符在传输过程中无法...
### JSP中文乱码问题完全解决方案 #### 一、引言 在JSP开发过程中,中文乱码问题一直是困扰开发者的一大难题。由于JSP页面、请求参数等涉及到多种编码方式,如Unicode、GB2312、GBK以及UTF-8等,如果不进行适当的...
在开发Web应用时,我们经常会遇到JSP页面中文乱码的问题。...如果使用了`demo`这个压缩包,它可能包含示例代码或工具,帮助我们更直观地理解并实践上述解决方案。在实践中,不断调试和测试是解决这类问题的关键。
通过以上步骤,可以基本解决MySQL、JSP和SSH框架集成网站开发中的中文乱码问题。在实际开发过程中,要根据项目的具体情况进行调整和测试,确保每个环节都正确处理了字符编码。如果你遇到了特定的问题,可以进一步...
这个问题主要涉及到字符编码的处理,本文将深入探讨JSP中文乱码问题的解决方案。 一、理解字符编码 在开始解决乱码问题之前,我们首先要明白字符编码的基本概念。字符编码是用来表示文本字符的规则,常见的有ASCII...
本文将详细介绍几种有效的解决方案,帮助开发者应对各种场景下的乱码问题。 #### 一、解决服务器响应中文乱码 1. **设置Content-Type头** 在`HttpServletResponse`对象中通过`setContentType`或`setHeader`方法...
通过上述两种解决方案,我们可以有效解决Struts2资源文件在JSP页面中显示乱码的问题。虽然第一种方法可以达到目的,但其带来的维护不便使其不被推荐;相比之下,安装PropertiesEditor插件不仅操作简便,还能彻底解决...
在开发Java Web应用时,JSP中文乱码是一个常见问题,主要是由于字符编码不一致导致的。以下是针对这个问题的详细解析和解决方案: 1. **JSP页面编码不一致**: - JSP页面中,编码设置通常包含在两处:`...
本文将详细介绍如何在Servlet与JSP中彻底解决中文乱码问题,并给出具体的解决方案。 #### 二、中文乱码的原因分析 中文乱码主要由以下几个原因引起: 1. **服务器端编码设置不正确**:如果服务器端的字符集设置与...
本文档旨在深入探讨JSP处理中文时引发乱码的问题及其解决方案,帮助读者从根本上理解并解决此类问题。 #### 二、乱码问题的根源 ##### 2.1 明确乱码类型 首先,开发者需要明确自己遇到的乱码类型。常见的乱码可能...
本知识点将详细解析JSP+MySQL中文乱码问题以及post提交乱码的解决方案。 ### 知识点一:JSP页面字符编码设置 在JSP页面中,字符编码的设置对于中文显示至关重要。从给定内容中可以看出,开发者在index.jsp页面中...
《JSP乱码解决方案J2EE》 在Java和JSP开发中,中文乱码问题是一直困扰开发者的老大难问题。这个问题的根源在于Java的内核和class文件基于Unicode编码,而许多其他数据存储媒介如数据库、文件、流则通常使用其他编码...
总结来说,解决JSP中文乱码问题的关键在于理解不同环节的字符集设置,并确保它们之间的一致性。从源文件的编码到页面显示、HTTP交互、数据库操作以及文件读写,每个环节都需要正确设置字符集,以确保中文字符能够...
下面将详细讲解 JSP 中文乱码种类和解决方案。 JSP 文件中文内容显示乱码 在 JSP 文件中,如果中文内容显示乱码,可能是由于浏览器的默认编码方式为 ISO-8859-1,而 JSP 文件的编码方式为 UTF-8所致。解决方案是,...