`
a66756675
  • 浏览: 436 次
  • 性别: Icon_minigender_1
  • 来自: 海南
文章分类
社区版块
存档分类
最新评论

JSP编码转换[转载]

    博客分类:
  • JSP
阅读更多

1.关于JSP页面中的pageEncoding和contentType两种属性的区别:


  pageEncoding是jsp文件本身的编码

  contentType的charset是指服务器发送给客户端时的内容编码

  JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。

  第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java),如果pageEncoding设定错了,或没有设定,出来的就是中文乱码。

  第二阶段是由JAVAC的JAVA源码至java byteCode的编译,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。

  JAVAC用UTF-8的encoding读取java源码,编译成UTF-8 encoding的二进制码(即.class),这是JVM对常数字串在二进制码(java encoding)内表达的规范。

  第三阶段是Tomcat(或其的application container)载入和执行阶段二的来的JAVA二进制码,输出的结果,也就是在客户端见到的,这时隐藏在阶段一和阶段二的参数contentType就发挥了功效

  contentType的設定.

  pageEncoding 和contentType的预设都是 ISO8859-1. 而随便设定了其中一个, 另一个就跟着一样了(TOMCAT4.1.27是如此). 但这不是绝对的, 这要看各自JSPC的处理方式. 而pageEncoding不等于contentType, 更有利亚洲区的文字 CJKV系JSP网页的开发和展示, (例pageEncoding=GB2312 不等于 contentType=utf-8)。

  jsp文件不像.java,.java在被编译器读入的时候默认采用的是操作系统所设定的locale所对应的编码, 比如中国大陆就是GBK,台湾就是BIG5或者MS950。而一般我们不管是在记事本还是在ue中写代码,如果没有经过特别转码的话,写出来的都是本地编 码格式的内容。所以编译器采用的方法刚好可以让虚拟机得到正确的资料。

  但是jsp文件不是这样,它没有这个默认转码过程,但是指定了pageEncoding就可以实现正确转码了。

  举个例子:

        <%@ page contentType="text/html;charset=utf-8" %>

    大都会打印出乱码,因为输入的“你好”是gbk的,但是服务器是否正确抓到“你好”不得而知。
        但是如果更改为

        <%@ page contentType="text/html;charset=utf-8" pageEncoding="GBK"%>

  这样就服务器一定会是正确抓到“你好”了。

2.通常,在涉及到中文的JSP页面中,要根据不同的情形进行相应的编码变换:

        要使JSP页面能正确显示中文,在JSP页面中加入:
  <%@ page contentType="text/html;charset=UTF-8"%>

        要使JSP页面正确接收来自上一个页面提交的含中文信息的表单,以及从数据库或是文件中正确读出中文信息,就需要将得到的字符串进行代码转换如:
        String str=new String(str.getBytes("ISO-8859-1"),"UTF-8");

        而当JSP向数据库或文件中写入中文字符时,就要用相反的方式转换,如:
        String str=new String(str.getBytes("UTF-8"),"ISO-8859-1");


        PS:这里的"UTF-8"要根据你JSP页面的charset内容而定,不可盲目照搬。

分享到:
评论

相关推荐

    jsp编码转换类(乱码解决方案)

    jsp页面向数据库中写入数据,当数据为英文时,可正常写入,当数据为中文时,就会出现乱码。

    动态Jsp页面转换成静态Html页面

    动态Jsp页面转换成静态Html页面动态Jsp页面转换成静态Html页面动态Jsp页面转换成静态Html页面动态Jsp页面转换成静态Html页面动态Jsp页面转换成静态Html页面动态Jsp页面转换成静态Html页面动态Jsp页面转换成静态Html...

    jsp文件编码转换工具(utf-8到GBK或相反)

    标题“jsp文件编码转换工具(utf-8到GBK或相反)”涉及的核心知识点是关于字符编码的转换,特别是在JavaServer Pages (JSP) 文件中的应用。JSP是Java Web开发的一种技术,用于创建动态网页。在这个场景中,我们关注...

    jsp编码 jsp乱码

    jsp编码 jsp乱码解决方案 jsp编码是Java Web开发中的一项重要技术,jsp编码直接影响着Web应用程序的正常运行。jsp编码乱码问题是jsp开发中常见的问题之一,该问题可能会导致jsp页面显示乱码,影响用户体验。因此,...

    JSP-常用编码转换工具

    在做J2EE时,经常需要将静态网页转换成jsp,但下载下来的htm或htm文件本身是UTF8和unicode,直接改成jsp会变成乱码,在MyEclipse中修改也不成,颇费劲。这个代码程序就是用来读取某种编码格式的html或txt文件并将它...

    mac文件编码转换

    在Mac操作系统中,文件编码转换是一项重要的任务,尤其对于处理包含不同字符集的文本文件时。常见的文件类型如txt、xml、css、htm、html、php、jsp等,它们可能因开发环境或语言设定的不同而采用不同的编码方式,如...

    jsp页面文档编码问题

    在Java Web开发中,编码问题始终是一个常见的挑战,特别是涉及到JSP页面时。JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,以实现服务器端的数据处理和逻辑控制。然而,由于...

    说塔文件编码转换器 v1.0.0 bulid 080921 Beta

    说塔文件编码转换器可以将文件(如:aspx文件|*.aspx|cs文件|*.cs|asp文件|*.asp|txt文件|*.txt|css文件|*.css|js文件|*.js|jsp文件|*.jsp|php文件|*.php等)的编码格式在UTF-7、UTF-8、Unicode、ASII、Big5、GB2312...

    html转换为jsp

    把html页面转换为jsp页面工具java代码生成工具

    eclipse 编码转换插件

    假设你的同事做好了一个项目,为了更好的支持国际化,里面的jsp页面都采用UTF-8,然后发给你,你导入到Eclipse的workspace中,一般情况下,在Eclipse中,这些jsp都变成了GBK编码,你双击打开,一堆乱码。假设你知道...

    jsp文件转换成静态的html

    在IT行业中,将JSP(JavaServer Pages)文件转换为静态HTML是常见的优化网站性能的手段之一。JSP是一种服务器端脚本语言,用于动态生成HTML、XML或其他文本格式的网页。然而,对于那些不涉及数据库交互或动态内容...

    jsp编码规范

    【JSP编码规范】是Java Web开发中的一个重要组成部分,它旨在提高代码的可读性、可维护性和团队协作效率。以下是一些关键的规范要点: 1. **文件命名规范**: - **文件后缀**:不同的文件类型应遵循特定的后缀。如...

    jsp页面调用applet实现人民币的大小写转换.docx

    本文主要讲述了如何使用JSP页面调用Applet实现人民币的大小写转换。该实现方法通过在JSP页面中嵌入一个Applet,使用JavaScript与Applet进行交互,实现实时的人民币大小写转换。 一、JSP页面调用Applet的实现 在JSP...

    java编码转换的详细过程.pdf

    Java 编码转换的详细过程 Java 编码转换是 Java 程序的生命周期中一个非常重要的过程。在 Java 程序的生命周期中,编程人员首先编写源程序代码,然后将其编译成.class 文件,最后将其运行在 JVM 中。在这个过程中,...

    java字符编码转换详细过程

    ### Java字符编码转换详细过程 #### 一、Java程序的生命周期与字符编码处理流程 Java程序的生命周期可以概括为三个主要阶段:编写源代码、编译源代码以及运行编译后的类文件。在这个过程中,涉及到多种字符编码的...

    JSP编码以及乱码问题解疑

    **JSP编码与乱码问题详解** 在JSP(JavaServer Pages)开发中,编码问题是一个常见的困扰,尤其是在处理中文字符时。本文将深入探讨JSP编程过程中出现的乱码问题,包括原因分析和解决方案。 1. **基本的乱码问题**...

    myeclipse(设置JSP页面编码格式)【图解很详细的】

    在开发Web应用时,正确设置JSP页面的编码格式至关重要,因为这直接影响到网页内容的显示,特别是处理中文字符时。MyEclipse作为一款强大的Java EE集成开发环境,提供了便捷的方式来配置JSP页面的编码。以下将详细...

    关于java中的编码转换问题(解决乱码问题)

    四、JSP编码转换 在JSP中,为了避免乱码,需要设置页面编码和请求编码。在JSP头部使用`;charset=UTF-8" %&gt;`设定页面编码,同时确保HTML `&lt;meta&gt;`标签中也指定了正确的字符集。对于请求参数,可以通过`request.set...

    火车票查询jsp编码

    【标题】"火车票查询jsp编码"涉及到的是一道针对初学者的编程实践题目,主要目的是让学生掌握如何使用JavaServer Pages (JSP) 技术来实现一个火车票查询系统。JSP是一种基于Java的服务器端脚本语言,用于创建动态...

Global site tag (gtag.js) - Google Analytics