JSP页面中文乱码

来源:互联网 发布:linux变量定义为文件 编辑:程序博客网 时间:2024/05/16 07:53

JSP文件乱码

每个JSP文件的头部基本上都定义了如下的内容

<%@ page language="java" contentType="text/html; charset=GBK"    pageEncoding="ISO-8859-1"%>

JSP在部署后提供给用户使用,会经过三个阶段:
  1 JSP生成java文件:这个阶段会使用pageEncoding所定义的编码格式进行转换
  2 java文件生成class文件:这个阶段由服务器tomcat自动使用utf-8编码把java文件转换成字节码class文件  
  3 通过读取class文件展现给用户这个阶段由tomcat服务器获取字节码内容,通过使用contentType所定义的编码格式展现给用户。
简单的说:
  charset是指服务器发往客户端展现时的编码;
  pageEncoding用于设置JSP页面本身的编码。

HTML乱码

JSP中包含HTML的内容而HTML本身也是有编码格式的

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body></body></html>

这种乱码只需要检查HTML里面的content是否正确就可以

request乱码

有时候在做jsp逻辑处理时,比如提交表单,从前台注册的页面提交了一部分的数据,但是后面处理的JSP页面通过 request.getParameter 调用时,获取到的是一堆乱码。

  这是因为虽然前面JSP设置了编码格式,却没有在当前的JSP中设置读取数据的编码格式。

  使用下面的代码,就可以是设置request获取请求内容的数据编码:
  request.setCharacterEncoding("utf-8");

乱码的问题就这么多了,因为一个小页面中文乱码的问题浪费了一个下午的时间,真是好气啊.
  

0 0
原创粉丝点击