`
showmystage
  • 浏览: 56507 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

Jsp提交中文乱码解决方案

    博客分类:
  • JSP
阅读更多

今天在程序版本更新之后,发现了一个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乱码 N种解决方案

    本文将深入探讨“JSP乱码”的多种解决方案,并提供实用的解决策略。 1. **理解字符编码的基本概念** - 字符编码是计算机对文字进行存储和处理的标准,常见的有ASCII、GBK、UTF-8等。 - JSP页面默认使用ISO-8859-1...

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

    ### jsp乱码解决方案 #### 一、引言 在Web开发中,特别是使用Java Server Pages (JSP)进行开发时,字符编码问题是一个经常遇到的技术难题。如果处理不当,很容易导致网页显示乱码,影响用户体验及数据的正确性。...

    jsp页面提交乱码问题

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

    jsp乱码解决方案大全

    #### 三、表单提交乱码解决方案 ##### 3.1 表单提交乱码原因 当用户通过表单提交中文时,如果表单的编码与服务器端处理请求的编码不一致,则会导致中文乱码。 例如,在`submit.jsp`中,有一个简单的表单用于提交...

    JSP解决乱码与数据库乱码解决

    ### JSP解决乱码与数据库乱码解决方案 #### 一、引言 在Web开发中,尤其是使用Java Server Pages (JSP)技术时,字符编码问题是开发者常常遇到的一个难题。字符编码错误会导致页面显示乱码,严重影响用户体验。本文...

    Jsp中文乱码解决方案.rar

    本文将深入探讨JSP中文乱码问题的原因,并提供一系列解决方案。 一、原因分析 1. 字符集不匹配:在JSP文件、HTML文件、服务器、数据库等多个环节中,如果字符集设置不一致,就可能导致中文字符在传输过程中无法...

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

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

    解决jsp页面中文乱码问题

    在开发Web应用时,我们经常会遇到JSP页面中文乱码的问题。...如果使用了`demo`这个压缩包,它可能包含示例代码或工具,帮助我们更直观地理解并实践上述解决方案。在实践中,不断调试和测试是解决这类问题的关键。

    mysql+jsp+SSH网站开发中文乱码解决方案

    通过以上步骤,可以基本解决MySQL、JSP和SSH框架集成网站开发中的中文乱码问题。在实际开发过程中,要根据项目的具体情况进行调整和测试,确保每个环节都正确处理了字符编码。如果你遇到了特定的问题,可以进一步...

    jsp中文乱码问题解决方案

    这个问题主要涉及到字符编码的处理,本文将深入探讨JSP中文乱码问题的解决方案。 一、理解字符编码 在开始解决乱码问题之前,我们首先要明白字符编码的基本概念。字符编码是用来表示文本字符的规则,常见的有ASCII...

    JSP中解决中文乱码的万能方法

    本文将详细介绍几种有效的解决方案,帮助开发者应对各种场景下的乱码问题。 #### 一、解决服务器响应中文乱码 1. **设置Content-Type头** 在`HttpServletResponse`对象中通过`setContentType`或`setHeader`方法...

    Struts2资源文件在jsp页面中显示乱码解决

    通过上述两种解决方案,我们可以有效解决Struts2资源文件在JSP页面中显示乱码的问题。虽然第一种方法可以达到目的,但其带来的维护不便使其不被推荐;相比之下,安装PropertiesEditor插件不仅操作简便,还能彻底解决...

    JSP中文乱码解决集锦

    在开发Java Web应用时,JSP中文乱码是一个常见问题,主要是由于字符编码不一致导致的。以下是针对这个问题的详细解析和解决方案: 1. **JSP页面编码不一致**: - JSP页面中,编码设置通常包含在两处:`...

    Servlet及jsp解决中文乱码问题

    本文将详细介绍如何在Servlet与JSP中彻底解决中文乱码问题,并给出具体的解决方案。 #### 二、中文乱码的原因分析 中文乱码主要由以下几个原因引起: 1. **服务器端编码设置不正确**:如果服务器端的字符集设置与...

    jsp中文问题解决方案.pdf

    本文档旨在深入探讨JSP处理中文时引发乱码的问题及其解决方案,帮助读者从根本上理解并解决此类问题。 #### 二、乱码问题的根源 ##### 2.1 明确乱码类型 首先,开发者需要明确自己遇到的乱码类型。常见的乱码可能...

    JSP+ MySQL中文乱码问题post提交乱码解决方案

    本知识点将详细解析JSP+MySQL中文乱码问题以及post提交乱码的解决方案。 ### 知识点一:JSP页面字符编码设置 在JSP页面中,字符编码的设置对于中文显示至关重要。从给定内容中可以看出,开发者在index.jsp页面中...

    JSP乱码解决方案J2EE

    《JSP乱码解决方案J2EE》 在Java和JSP开发中,中文乱码问题是一直困扰开发者的老大难问题。这个问题的根源在于Java的内核和class文件基于Unicode编码,而许多其他数据存储媒介如数据库、文件、流则通常使用其他编码...

    JSP中文乱码的产生原因及解决方案

    总结来说,解决JSP中文乱码问题的关键在于理解不同环节的字符集设置,并确保它们之间的一致性。从源文件的编码到页面显示、HTTP交互、数据库操作以及文件读写,每个环节都需要正确设置字符集,以确保中文字符能够...

    jsp页面传值中文乱码问题处理.docx

    下面将详细讲解 JSP 中文乱码种类和解决方案。 JSP 文件中文内容显示乱码 在 JSP 文件中,如果中文内容显示乱码,可能是由于浏览器的默认编码方式为 ISO-8859-1,而 JSP 文件的编码方式为 UTF-8所致。解决方案是,...

Global site tag (gtag.js) - Google Analytics