当前位置: 首页 > news >正文

一文解决IDEA中文乱码问题

在这里插入图片描述

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:JAVA开发者成长之路
✨特色专栏:国学周更-心性养成之路
🥭本文内容:一文解决IDEA中文乱码问题
更多内容点击👇
       JSP连接MySQL数据库

【本文目录】

    • 1、JSP网页页面乱码
    • 2、JSP include 引入文件乱码
    • 3、tomcat导致的控制台乱码
    • 4、IDEA导致的控制台乱码

在这里插入图片描述

1、JSP网页页面乱码

在.jsp文件的开头加入:

<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

2、JSP include 引入文件乱码

【1】乱码运行效果如下:
在这里插入图片描述
【2】在要引入的文件part.htm中添加:

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>

如下图:
在这里插入图片描述
源码分享:

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>

<h1>你好,我是html文件!</h1>

在index.jsp中引用了part.html文件如下:
在这里插入图片描述
源码分享:

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@include file="part.html"%>

<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  你好
  <% int num=100; %>
  <h1>【include.jsp页面】num=<%=num%></h1>
  <hr><jsp:include page="info.jsp"/>
  </body>
</html>

【3】正确运行效果如下:
在这里插入图片描述

【4】JSP 要经过三个阶段,两次的“编码”:

第一阶段会用 pageEncoding ———> 第二阶段会用 utf-8 至 utf-8 ———> 第三阶段会用 contentType 也就是在客户端浏览器中看到的

第一阶段是 JSP 文件翻译成 Servlet,也就是 .java 文件,这是容器会根据 pageEncoding 的设置读取 jsp 文件, 结果是有指定的编码方法翻译成统一的 UTF-8 的Java源代码,如果 pageEncoding 没有设定或者设定不对,就会出现中文乱码。

第二阶段是 javac 将 java 源代码编译成 java 字节码,不论 JSP 编写时用的什么编码方案,经过这个阶段的结果都是 UTF-8 编码的 java 源代码。javac 使用 UTF-8 的编码读取 java 源代码,编译成 UTF-8 编码的二进制字节码,即 .class 文件,这是 JVM 对常数字符串在二进制内表达的规范。

第三阶段是 Tomcat 或者其他容器载入和执行 java 字节码,输出的结果也就是在客户端浏览器见到的,这个阶段隐藏在第一阶段和第二阶段的 contentType 设定就发挥作用了。

include 指令就是在第一阶段, 即 JSP 页面翻译成 Servlet 时

include 动作发生在第一阶段之前

如果包含文件和被包含文件的编码不一致,在进行编码转换时就可能出现中文乱码

3、tomcat导致的控制台乱码

【1】打开Edit Configurations

在这里插入图片描述

【2】打开Server,在VM options框里加上: -Dfile.encoding=UTF-8

在这里插入图片描述

【3】打开Startup/Connection,添加name:JAVA_TOOL_OPTIONSvalue:-Dfile.encoding=UTF-8,设置完成后,点击OK完成配置。

在这里插入图片描述

4、IDEA导致的控制台乱码

【1】打开File-Settings
在这里插入图片描述
【2】如下图,打开Editor->File Encodings;然后设置3/4中三个位置都是UTF-8
在这里插入图片描述
【3】修改idea安装目录下idea.exe.vmoptions/idea64.exe.vmoptions两个文件,后面加上 -Dfile.encoding=UTF-8,然后重启idea。
在这里插入图片描述


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

相关文章:

  • 论文笔记|DeepWalk
  • 微服务框架 SpringCloud微服务架构 21 RestClient 操作文档 21.5 批量导入文档
  • 从源码角度看React-Hydrate原理
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • JTable详细介绍
  • 前端Gitee + Jenkins自动化实战(转)
  • Grafana安装与配置
  • 加固技术护城河,比亚迪商用车加速领跑全球电动化进程
  • Ubuntu记住git账号密码
  • SpringBoot系列之基于MongoRepository实现分页
  • 【Python恶搞】Python实现祝福单身狗的恶搞项目,快@你的好朋友,祝福他吧 | 附源码
  • [附源码]JAVA毕业设计师生交流平台(系统+LW)
  • 关于海量级存储用户标签体系架构
  • Maven是什么?手把手先创建个Maven项目
  • 通过Node + SSE 做了一个构建日志推送
  • 作为技术面试官,考什么前端知识点(一)
  • java-net-php-python-springbot学生奖惩管理系统计算机毕业设计程序
  • Vue按钮(Button)
  • Spring Boot使用宝兰德BES进行改造和部署
  • 全国青少年软件编程等级考试Python标准解读(1_6级)
  • 深度学习与机器学习的区别
  • 如何对文档进行分类
  • 分子骨架跃迁工具DiffLinker评测
  • Docker容器——harbor私有仓库部署与管理
  • MYSQL必知必会笔记:第十一章使用数据处理函数
  • GC IOS Client教程(详细版)
  • 12款开源数据资产(元数据)管理平台选型分析(一)
  • Node.js入门:Buffer对象学习
  • Spring Cloud Alibaba Sentinel 简介与入门
  • 「自控元件及线路」3.2 三相、两相、单相异步电动机
  • 2023年重庆高考588分能报什么大学 588分能上哪些院校
  • 2023年山东春季高考考试时间 什么时候考试
  • 单招被调剂可以不去吗 还能高考吗
  • 2023湖南双一流大学名单 湖南哪所学校好
  • 中专考大学要考什么科目 内容有哪些
  • 预计2023国家专项计划录取分数线是多少
  • 2021年浙江工商大学杭州商学院学费是多少 各专业收费标准
  • 神经科学专业课程有哪些
  • 2023软件工程专业课程有哪些 就业方向是什么
  • 现在进行时结构是什么 怎么构成的