java - 中文乱码问题

 Happy_Kelly尊荣 发布于 2022-10-26 17:40

通过page指令对编码格式进行说明如下:

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

输出的中文还是乱码,为什么?
下面写就不会出现乱码

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

为什么?恳请各位指导一下,谢谢。

2 个回答
  • 是你设置方式的问题。首先有一点要指出来,你都没说清楚是解决哪种文件格式乱码的问题,但你想表述意思大概明白。这样吧,给你区分说一下三种文件格式的设置方式:

    1、HTML文件

    <!doctype html>
    <html>
        <head>
            <!--或者 <meta http-equiv=="content-type" content="text/html; charset=utf-8" /> -->
            <meta charset = "utf-8" />
            <title>DEMO</title>
        </head>
        <body>
        </body>
    </html>
    

    2、JSP文件

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>My JSP 'index.jsp' starting page</title>
      </head>
      
      <body>
        This is my JSP page. <br>
      </body>
    </html>
    

    3、XML文件

    <?xml version="1.0" encoding="UTF-8"?>  
    <root>
    </root>
    

    注:以上解决的只是文件在客户端显示乱码的问题,要解决服务端后台输入输出乱码的问题另做论述。

    2022-10-27 01:18 回答
  • contentType="text/html; charset = utf-8" 的意思是指定输出的 HTML 页面的编码方式;
    但是你在 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 指定的 pageEncoding="utf-8" 表示 JSP 文件本身的编码,JSP 接收到后端的参数时对参数的解析也是使用这个编码 —— 所以当 JSP 接收到你后端参数时,后端使用的 UTF-8 编码,而你没有设置 pageEncoding="utf-8",此时使用的可能就是和你机器相关的默认编码(比如“著名”的 ISO 8859-1)—— 那么 JSP 页面就会出现转码错误,后端以 UTF-8 编码的字符 JSP 以 ISO 8859-1 来转换 —— 从而出现了乱码

    2022-10-27 01:18 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有