首页 > 其他 > 详细

浏览器页面乱码

时间:2018-12-01 12:01:26      阅读:151      评论:0      收藏:0      [点我收藏+]

当有人问你:JSP中的<%@page pageEncoding=”UTF-8”%>具体的功能是什么?
你答:设置页面编码字符集。没了,那可不太合适

JSP-> .java文件的翻译过程,由谁执行? 

是Tomcat(中间件容器)执行的.

那么中间件容器运行在什么环境中? 

相信有人不太清楚,是运行在你的操作系统中的.

那么操作系统的字符集又是什么呢?

操作系统的字符集是根据具体环境定义的:

如:中国GBK、中国台湾BIG5等等.

Tomcat默认使用ISO-8859-1字符集编译jsp.

JSP提供页面指令,设置页面字符集, 通知中间件容器在翻译JSP的时候,使用什么字符集来翻译.调用JVM编译和解释java代码及字节码文件的时候,使用什么字符集.


例如:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
1.pageEncoding与contentType中的charset的区别
1)在jsp中pageEncoding的含义:宏观上指jsp文件本身的编码,pageEncoding="UTF-8",指jsp文件本身的编码为UTF-8
2) 而contentType中的charset指的是服务器发送给客户端时的内容编码,
contentType="text/html; charset=UTF-8",是指服务器发送给客户端的文本类型是text/html,编码格式是UTF-8
底层:
.jsp文件被转译成.java文件时, response.setContentType("text/html;charset=ISO-8859-1");
[size=10.5000pt]2. pageEncoding="UTF-8"与pageEncoding="ISO-8859-1"区别
[size=10.5000pt]1)在浏览器上显示,pageEncoding="UTF-8"格式的jsp页面中的中文没有乱码,而pageEncoding="ISO-8859-1"格式的jsp页面中的中文有乱码
[size=10.5000pt]2)在.jsp文件被转译成.java文件时,pageEncoding="UTF-8"格式的.java文件中的中文没有乱码,而pageEncoding="ISO-8859-1"格式的.java文件中的中文有乱码
如下:
代表pageEncoding="ISO-8859-1"格式的.java文件
          out.write("   \t\t我爱我家\r\n");
      out.write("   \t\t<form action=\"#\">\r\n");
      out.write("   \t\t\tå§“å??:<input type=\"text\">\r\n");
      out.write("   \t\t\t<input type=\"submit\" value=\"æ??交\">\r\n");
代表pageEncoding="UTF-8"格式的.java文件
  out.write("   \t\t我爱我家\r\n");
      out.write("   \t\t<form action=\"#\">\r\n");
      out.write("   \t\t\t姓名:<input type=\"text\">\r\n");
      out.write("   \t\t\t<input type=\"submit\" value=\"提交\">\r\n");
[size=10.5000pt]3)总结:也因此说明1)条结论中为什么在浏览器中pageEncoding="ISO-8859-1"格式的jsp页面中的中文有乱码原因:
在于pageEncoding="ISO-8859-1"格式的.jsp文件在被转译成.java文件时就已经出现乱码,服务器再把乱码的数据响应到浏览器,自然浏览器展示出来的数据也是乱码的。

浏览器页面乱码

原文:https://www.cnblogs.com/fpcbk/p/10048349.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!