博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浏览器页面乱码
阅读量:6341 次
发布时间:2019-06-22

本文共 1711 字,大约阅读时间需要 5 分钟。

当有人问你: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

你可能感兴趣的文章
.NET中使用Redis
查看>>
PHP 页面跳转的三种方式
查看>>
Juniper总结
查看>>
屏蔽scrollview的滚动
查看>>
面试题目3:智能指针
查看>>
取消凭证分解 (取消公司下的多个利润中心)
查看>>
flask ORM: Flask-SQLAlchemy【单表】增删改查
查看>>
vim 常用指令
查看>>
nodejs 获取自己的ip
查看>>
Nest.js 处理错误
查看>>
MD5的安全性
查看>>
你好,C++(16)用表达式表达我们的设计意图——4.1 用操作符对数据进行运算...
查看>>
[转] Mac下 快速写博客的软件 MarsEdit
查看>>
Unity的赛车游戏实现思路
查看>>
[Android UI] Shape详解 (GradientDrawable)
查看>>
边学边体验django--HttpRequest 对象
查看>>
18.3 redis 的安装
查看>>
jdbc 简单连接
查看>>
多态初步认识
查看>>
数组处理:118
查看>>