`
vboy1988
  • 浏览: 7934 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Web编程中乱码问题的实验和探究

阅读更多

说明:下文涉及的内容只限于对前端jsp和后台servlet的代码修改,不涉及Web容器和数据库的相关修改。
我的测试环境是:英文XP操作系统,容器采用Tomcat6,前台是jsp,后台Servlet,Ajax框架采用prototype1.6.0

Web编程中前后端乱码问题发生的根源
从前端jsp到后台的Servlet,中间传输过程中的默认编码方式是ISO-8859-1,这种编码方式是西欧字符集,包括英语,德语,丹麦语,芬兰语等,其它语言如中文日文等是不兼容的,如不经转换或是设置直接在Servlet中用request.getParameter(paramName)这种方式直接拿出来中文部分就会得到乱码,但英语,字母,数字组合成的字符串是不会变成乱码的。

常见的编码解决乱码问题的方式有

  • new String(request.getParameter(paramName).getBytes("ISO-8859-1"),"页面字符集");
  • HttpServletRequest.setCharacterEncoding("页面字符集");
  • URLDecoder.decode(str, "UTF-8");

它们各自用在不同的场合,这里的页面字符集指GBK,GB2312,UTF-8等,它们通常和jsp页面设定的字符集(charset)一致。

如果是将form通过post方式提交,在servlet的doPost函数开头(对于Struts写在execute函数开头)写上request.setCharacterEncoding("jsp网页字符集")就可以直接用request.getParameter(paramName)直接得到文字,不需要经过再转码。这里需要注意的是form的action如果不直接写成post的话,是会以get方式提交,这时request.setCharacterEncoding就会失效。

如果不管是post还是get方式,想做一个通用方案,则可以通过new String(request.getParameter(paramName).getBytes("ISO-8859-1"),"jsp网页编码方式")得到转码后正常的文字,这种方式只要知道网页的字符集,几乎都能还原成正确的文字,适用性很广,在Servlet和Action中很常见。

如果是Ajax提交方式,则在servlet或是action中书写request.setCharacterEncoding("jsp网页字符集")是没有效果的,经过对提交的URL用一次javascript的encodeURI函数编码后,用 new String(request.getParameter(paramName).getBytes("ISO-8859-1"),"jsp网页字符集")可以得到正确的文字。但如果不用encodeURI函数处理提交的url则不会正确的文字。

Ajax提交中文的另一种方式可以用javascript的encodeURI函数对提交的URL进行两次编码,而后台采用URLDecoder.decode(request.getParameter(paramName), "UTF-8")得到正确的文字。

上面两种方式都借助了avascript的encodeURI函数的帮助,它能将字符串进行utf-8编码,其中,第二种方式确定性很高,推荐。

分享到:
评论

相关推荐

    java编程中乱码问题解决

    ### Java编程中乱码问题解决 在Java编程中,乱码问题是开发者经常遇到的一个难题,尤其是在处理中文或者其他非英文字符时。本文将详细介绍如何解决Java编程中常见的乱码问题,并提供具体的实例帮助读者理解。 ####...

    解决web项目中出现的乱码问题,很方便

    本方案提供了一个简洁有效的解决方法,通过一个Java文件和在`web.xml`配置文件中的简单设置,可以有效地解决乱码问题。 首先,我们要理解乱码产生的原因。在Web应用中,乱码通常发生在以下几个环节: 1. **请求...

    配置web-xml解决中文乱码问题.pdf

    本文主要讨论了在 Web 开发中遇到的中文乱码问题,并提供了一些解决方案。首先,需要确定中文乱码问题不是由浏览器引起的,然后讨论了 Tomcat 服务器配置和数据库 bean 配置中的一些解决方案。 一、浏览器配置问题 ...

    Java Web编程中页面跳转乱码问题的解决方案.pdf

    通过这些措施,可以最大程度地减少页面跳转和数据传递过程中出现的乱码问题,提高Java Web应用的稳定性和用户体验。在实际开发中,应该根据具体情况选择合适的编码和乱码解决方案,以确保Web应用的国际化和本地化...

    解决Mysql数据库在web开发中乱码问题

    在Web开发中,尤其是使用MySQL数据库进行数据存储时,字符编码问题经常会导致中文或特殊字符显示为乱码,严重影响用户体验和数据的准确性。本文将详细探讨如何解决MySQL数据库在Web开发中的乱码问题,确保数据在各个...

    Java WEB开发中的中文乱码问题解决方法.pdf

    在Java Web开发中,中文乱码问题一直是开发人员面临的常见问题之一。中文乱码通常是由于在字符编码转换过程中,字符集不一致或设置不当所导致。为了解决这一问题,首先需要了解Java Web工程字符编码的基本理论,包括...

    hadoop中文乱码问题

    解决Hadoop中文乱码问题的关键在于识别和匹配数据的正确编码,并在Hadoop组件和工具中设置相应的编码选项。在实际操作中,可能需要结合日志信息和源码调试来定位问题。同时,建立良好的编码规范,统一数据的编码格式...

    解决web中文乱码

    在Web开发过程中,中文乱码是一个常见的问题,尤其是在处理HTTP请求和响应时。本文将深入探讨如何使用Java的Filter机制来解决这个问题,提供一个简单可靠的解决方案,并详细解释配置过程。 一、理解Web中文乱码问题...

    java web开发解决乱码问题

    ### Java Web 开发中解决乱码问题的全面指南 #### 一、乱码问题概述 在Java Web开发过程中,乱码问题是开发者经常会遇到的问题之一。它通常发生在处理含有中文或其他非ASCII字符的数据时。本篇文章将详细介绍在...

    Java Web开发中文乱码问题的研究与解决.pdf

    在Java Web开发中,中文乱码问题是一个常见的困扰,尤其对于使用Servlet和JSP技术的开发者来说。乱码问题的产生主要源于字符编码的不一致性,即在Web组件之间、Web组件与浏览器、以及Web组件与数据库之间的字符集...

    Java Web程序开发中字符乱码的原因与解决办法.pdf

    字符乱码问题是Java Web程序开发过程中经常遇到的一个问题,它会对用户界面的友好性以及信息的准确传达造成很大的影响。为了解决这个问题,我们首先要了解字符集和字符编码的相关知识,然后分析字符乱码的原因,并...

    解决中文乱码问题

    "解决中文乱码问题" 标题解释 解决中文乱码问题是指在使用C#语言读取txt文件时,遇到中文乱码的问题。这种问题在实际开发中非常常见,特别...在ASP.NET框架中,C#语言可以用于开发Web应用程序,并解决中文乱码问题。

    web乱码解决web乱码解决

    在Web开发中,乱码问题是一个常见的问题,特别是在中文网站中。为了解决这个问题,我们需要了解JSP/Servlet中的几个编码的作用。 首先,让我们来了解一下JSP/Servlet中的几个编码的作用: 1、pageEncoding="UTF-8...

    FORM表单中文乱码问题分析与解决

    在 Web 开发中,中文乱码问题是一个常见的问题,尤其是在FORM表单传递参数时。这个问题的根本原因是对中文的编码与解码方式不一致。我们可以理解为对中文的加密与解密的密钥不一致。例如,用UTF-8对中文编码而用ISO-...

    java+jsp+mysql开发 web项目处理中文乱码问题

    在 Java+jsp+mysql 开发 web 项目中,中文乱码问题是一个常见的问题,影响着项目的正常运行。下面我们将从四个方面来解决中文乱码问题: 一、Jsp 输出中文的乱码问题 在 Jsp 页面中,如果不设置 charset,输出中文...

    web项目乱码问题 jsp乱码问题解决

    在Web开发中,尤其是涉及到Java和JSP的项目,中文乱码问题常常困扰着开发者。本文将深入探讨这个问题,提供解决方案。 首先,我们需要理解乱码的根源。乱码通常由于字符编码不一致导致,尤其是在JSP文件中,不同的...

    Java编程中中文乱码问题的研究及解决方案

    Java编程中中文乱码问题是一个常见的困扰开发者的问题,尤其是在Java Web开发环境中。Java语言本身使用Unicode编码,这是一种全球化的标准,确保了各种字符集的兼容性。然而,Unicode编码在与其他系统交互时,如...

    解决JSP中文乱码问题

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

Global site tag (gtag.js) - Google Analytics