zoukankan      html  css  js  c++  java
  • JSP页面的Page指令指定编码和Meta标签编码

     1 JSP代码如下:
     2 <%@ page language="java" contentType="text/html; charset=UTF-8"
     3 pageEncoding="UTF-8"%>
     4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     5 <html>
     6 <head>
     7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     8 <title>Insert title here</title>
     9 </head>
    10 <body>
    11 </html>

    在这里面跟编码类型有关的地方有3处:

    1、jsp的page指令中contentType属性(与pageEncoding是一样的,如果MIME类型不是text/html,需用该属性设置MIME类型及编码),这个编码指定了输出html页面的编码。也就是由Servlet输出返回给浏览器的显示页面

    2、jsp的page指令中pageEncoding属性(用户在浏览器中右击查看编码所看到的编码格式,默认MIME类型是text/html)

    在生成的.java文件中为response.setContentType("text/html;charset=UTF-8");

    这个编码指定了JSP页面的编码类型,也就是保存成.jsp的字符文件的编码类型,这个文件保存后会经过容器转换,先转换为.java也就是对应的java源文件(继承相应的servlet)这个过程就是按照pageEncoding指定的编码来读取的。转换成的.java文件以及后边编译后的.class文件的编码都是规定的UTF-8编码。

    注意,如果这里的编码格式不指定,就可能不被正确转换为.java文件,这里jsp有区别于java文件,jsp文件到java文件没有默认编码转换方式,没有指定就没法正确解析,而java文件到class文件的转换有默认的编码格式,即本地编码格式,也就是说javac编译工具默认会根据电脑系统的编码格式进行解析java文件,这也是为什么记事本等系统自带编辑器写的代码能被正确编译的原因。

    3、html中的<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    这里的编码charset=UTF-8就是告诉浏览器,我返回给你的HTML页面编码格式是什么,这样浏览器就可以按照正确的编码格式来解析HTML页面了。

    总结:

    1中的编码类型一定要和3中的一致,而2中的类型无所谓,可根据自己页面中包含的字符类型选择合适的编码格式。

    另外,在java源码中也可以设置编码格式,可以做转码操作。

  • 相关阅读:
    安装python3的详细教程
    MySQL中的各种引擎
    MySQL的语句执行顺序
    MySQL 5.7新增加的json数据类型
    MySQL5.6 PERFORMANCE_SCHEMA 说明
    MySQL中的sys系统数据库是干嘛的
    MySQL中information_schema数据库是干啥的
    mysql中You can’t specify target table for update in FROM clause错误解决方法
    win10 localhost 解析为::1 的解决办法
    python 中对象is和==是怎么比较的
  • 原文地址:https://www.cnblogs.com/lijie0609/p/12009233.html
Copyright © 2011-2022 走看看