• 编码问题


    1、 pageEncoding="utf-8"
    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    pageEncoding="utf-8":指的是jsp文件的编码方式;
    普通的话:
    pageEncoding="utf-8"这句话只是简单的文本,改变它并不会改变文件的编码方式
    如:右下角显示文件的编码仍然是utf-8
    见图:


    MyEclipse(可能是MyEclipse)对这个东西进行了解析,当我们修改这句话的时候
    如: pageEncoding="utf-8" ----------》 pageEncoding="gbk"
    时,文件的编码方式会变成gbk且不会乱码。
    见图:
    修改前:

    修改后:


    2、JSP/servlet中的几种编码的作用
    JSP 中 pageEncoding charset 的区别
    首先,说说JSP/Servlet中的几个编码的作用。
    在JSP/Servlet中主要有以下几个地方可以设置编 码,pageEncoding="UTF-8"、contentType="text/html;charset=UTF-8"、request.setCharacterEncoding("UTF-8")和 response.setCharacterEncoding("UTF-8"),其中前两个只能用于JSP中,而后两个可以用于JSP和Servlet 中。
    1、pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码。
    众所周知,JSP在服务 器上是要先被编译成Servlet的。pageEncoding="UTF-8"的作用就是告诉JSP编译器在将JSP文件编译成Servlet时使用的 编码。通常,在JSP内部定义的字符串(直接在JSP中定义,而不是从浏览器提交的数据)出现乱码时,很多都是由于该参数设置错误引起的。例如,你的 JSP文件是以GBK为编码保存的,而在JSP中却指定pageEncoding="UTF-8",就会引起JSP内部定义的字符串为乱码。
    另外,该参数还有一个功能,就是在JSP中不指定contentType参数,也不使用response.setCharacterEncoding方法时,指定对服务器响应进行重新编码的编码。

    2、contentType="text/html;charset=UTF-8"的作用是指定对服务器响应进行重新编码的编码。
    在不使用response.setCharacterEncoding方法时,用该参数指定对服务器响应进行重新编码的编码。
    3、request.setCharacterEncoding("UTF-8")的作用是设置对客户端请求进行重新编码的编码。
    该方法用来指定对浏览器发送来的数据进行重新编码(或者称为解码)时,使用的编码。

    4、response.setCharacterEncoding("UTF-8")的作用是指定对服务器响应进行重新编码的编码。
    服务器在将数据发送到浏览器前,对数据进行重新编码时,使用的就是该编码。


    3、浏览器发送数据和接收数据的编码方案
    JAVA编码转换的详细过程理解—>浏览器和服务器的接收和发送数据的编码
    http://www.360doc.com/content/17/0913/11/33260087_686723511.shtml


    4、老师的编码解决方案
    post方式提交的数据,采用:
    request.setCharacterEncoding(“utf-8”);
    • get方式提交的数据
    – 在server.xml中元素<Connector>中增加属性:
    useBodyEncodingForURI=“true” ,则 上面对get方式提交的
    数据也有效。
    • 通用方法
    – new String(str.getBytes(“iso8859-1”),” utf-8”);

  • 相关阅读:
    商业即生活,一些思考和感悟
    Unity中使用摇杆控制
    在家乡做什么生意比较好?且看雷家第一智囊的分析
    Android5.0之Toobar的使用
    Android5.0常用颜色属性说明
    hiho week 38 P1 : 二分·二分答案
    CCF模拟题 字符串匹配
    CCF模拟题 最优配餐
    CCF模拟题 相反数
    CCF模拟题 最优灌溉
  • 原文地址:https://www.cnblogs.com/dxwen/p/10901742.html
Copyright © 2020-2023  润新知