• 【JAVA笔记——术】JSP中乱码问题的解决方法


      直接用一个模板做的网站,可悲的是这模板质量太差,大部分时间都花在调整乱码问题上的,笔者感觉jsp中的乱码也就这点了。在汇总了网上大部分靠谱的解决方法之后,整理如下。

    1.html页面的编码规范

    用户能看到的都是html页面,因此,无论首先应该做到的是静态页面编码的规范。

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

    </head>

    对于JSP页面首行加上

    <%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>

    2.servlet编码的规范

    servlet作为中间的控制者,承担了对用户请求的一部分处理以及与后台数据库的交互功能,因此MVC模式中servlet作为一个枢纽一方面得解决用户请求信息的编码规范以及与数据库交互的编码规范。

    response.setContentType("text/html;charset=UTF-8");

    在此默认为response.setContentType("text/html");若不加charset=UTF-8有可能造成在使用request.getRequestDispatcher重定向时造成乱码;

    PrintWriter out = response.getWriter();
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");

     后两者没什么好说的,对接收的编码进行规范,前者如果删除有可能造成重定向乱码

    因此前四行代码一般直接这样使用

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {


    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
    doPost(request, response);

    ————————————————————————————————————————————

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {


    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");

    3.数据库连接时的编码规范

    DriverManager.getConnection("jdbc:mysql://localhost/*******?useUnicode=true&characterEncoding=utf8", " ", " ");

    设定连接数据库交互的编码规范

    如果这里在数据库中还存在乱码,请检查一下数据库对应的字符集,用数据库管理软件可以轻易编辑,这里不赘述

    4.设置tomcat默认字符集

    可以考虑这样做,在有时忘记对编码进行规范的时候,tomcat采用默认字符集,打卡tomcat所在文件夹的 /conf/server.xml

    <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" URIEncoding="UTF-8" />


    如果大家还存在乱码的问题可以联系我

  • 相关阅读:
    使用 MVVMLight 命令绑定
    使用 MVVMLight 绑定数据
    在VS中安装/使用 MVVMLight
    关于 MVVMLight 设计模式系列
    DoBox 下载
    Visual Studio使用技巧,创建自己的代码片段
    List 和 ObservableCollection的区别
    HTTP 错误 404.3 解决
    WPF 跟踪命令和撤销命令(复原)
    WPF 自定义命令 以及 命令的启用与禁用
  • 原文地址:https://www.cnblogs.com/cunchen/p/9464247.html
Copyright © 2020-2023  润新知