彻底解决Intellij IDEA中文乱码问题
关于JAVA IDE开发工具,Eclipse系列和Intelli IDEA是大部分公司的主要选择,从开发者的选择角度,Intellij IDEA似乎比Eclipse系列更受欢迎一些。当我们使用Intellij IDEA开发时,我们发现出现中文乱码问题,造成中文乱码的根本原因时开发工具和系统环境编码格式不匹配,本篇采用理论结合实际的角度,彻底解决该问题。
一 Intellij IDEA乱码问题重现
如下图所示,Intellij IDEA显示中文为乱码。
二 解决问题
(一)问题识别
根据Intellij IDEA控制台输出,Tomcat Catalina Log出现乱码,因此可以将问题定位到Tomcat上。那么,我们看看Tomcat控制台是否出现乱码。
果然,是Tomcat输出时出现问题。
(二)解决问题
1.查看系统编码格式,936代码GB格式
如下代码页和编码格式对应关系
- 代码页 国家(地区)或语言
- 437 美国
- 708 阿拉伯文(ASMO 708)
- 720 阿拉伯文(DOS)
- 850 多语言(拉丁文 I)
- 852 中欧(DOS) - 斯拉夫语(拉丁文 II)
- 855 西里尔文(俄语)
- 857 土耳其语
- 860 葡萄牙语
- 861 冰岛语
- 862 希伯来文(DOS)
- 863 加拿大 - 法语
- 865 日耳曼语
- 866 俄语 - 西里尔文(DOS)
- 869 现代希腊语
- 874 泰文(Windows)
- 932 日文(Shift-JIS)
- 936 中国 - 简体中文(GB2312)
- 949 韩文
- 950 繁体中文(Big5)
- 1200 Unicode
- 1201 Unicode (Big-Endian)
- 1250 中欧(Windows)
- 1251 西里尔文(Windows)
- 1252 西欧(Windows)
- 1253 希腊文(Windows)
- 1254 土耳其文(Windows)
- 1255 希伯来文(Windows)
- 1256 阿拉伯文(Windows)
- 1257 波罗的海文(Windows)
- 1258 越南文(Windows)
- 20866 西里尔文(KOI8-R)
- 21866 西里尔文(KOI8-U)
- 28592 中欧(ISO)
- 28593 拉丁文 3 (ISO)
- 28594 波罗的海文(ISO)
- 28595 西里尔文(ISO)
- 28596 阿拉伯文(ISO)
- 28597 希腊文(ISO)
- 28598 希伯来文(ISO-Visual)
- 38598 希伯来文(ISO-Logical)
- 50000 用户定义的
- 50001 自动选择
- 50220 日文(JIS)
- 50221 日文(JIS-允许一个字节的片假名)
- 50222 日文(JIS-允许一个字节的片假名 - SO/SI)
- 50225 韩文(ISO)
- 50932 日文(自动选择)
- 50949 韩文(自动选择)
- 51932 日文(EUC)
- 51949 韩文(EUC)
- 52936 简体中文(HZ)
- 65000 Unicode (UTF-7)
- 65001 Unicode (UTF-8)
2.解决Tomcat输出乱码问题
用Notepad++打开Tomcat安装源码conf文件夹下的logging.properties文件。
如下logging.properties文件内容,将下图标记的UTF-8改为GBK
如下为更换为GBK后的文件内容
3.重新启动Tomcat,乱码问题解决
4.再打卡Intellij IDEA,乱码问题已解决
三 拓展
网上有些博友提供了如下解决方法。
1.设置文件格式。File=>Settings=>Appearance&Behavior=>Appearance
2.删除idea文件夹下的encoding.xml文件除utf-8外的所有文件
3.设置Inllij idea文件编码格式,设置为UTF-8。File=>Settings=>Editor=>File Encodings
4.配置Tomcat VM options值为:-Dfile.encoding=UTF-8
5.打卡Intellij idea安装目录,在bin目录下的idea.exe.vmoptions和idea64.exe.vmoptions两个文件结尾添加
-Dfile.encoding=UTF-8
彻底解决Intellij IDEA中文乱码问题的更多相关文章
- 解决IntelliJ Idea中文乱码问题
乱码的根源是字符编码与解码不一致 解决之道:统一编码
- Intellij output 中文乱码
使用intellij有一段时间了,intellij output中文乱码,每次使用这两点解决,就可以解决乱码问题. 1.修改启动参数 修改安装Intellij目录下的C:\Program Files ...
- 教你解决Sublime Text中文乱码问题
教你解决Sublime Text中文乱码问题[转载自成长的企鹅] Sublime Text 2是一个非常不错的源代码及文本编辑器,但是不支持GB2312和GBK编码在很多情况下会非常麻烦. ...
- 分享一个解决MySQL写入中文乱码的方法
分享一个解决MySQL写入中文乱码的方法 之前有发帖请教过如何解决MySQL写入中文乱码的问题.但没人会,或者是会的人不想回答.搜索网上的答案并尝试很多次无效,所以当时就因为这个乱码问题搁浅了一个软件 ...
- 完美解决Informix的中文乱码问题
完美解决Informix的中文乱码问题 Informix是IBM旗下的一款数据库,要不是这个项目需要,估计这辈子我都不知道居然还有这么一款数据库.想来公司的项目遍布全国各地,各种部署环境各种应用场景 ...
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
前述: 在写这篇笔记之前,对笔记中的设计模式进行介绍: 本篇笔记中将要使用到的设计模式是:装饰(包装)设计模式 (1)装饰(包装)设计模式口诀: ...
- 解决Ubuntu系统中文乱码显示问题,终端打开文件及查看目录
解决Ubuntu系统中文乱码显示问题 [日期:2014-02-20] 来源:Linux社区 作者:njchenyi [字体:大 中 小] 我是先安装了Ubuntu 12.04 Server,然后 ...
- gedit 没有preference项,使preference回归,并用命令行设置行号,解决centos7下中文乱码,text wrapping等问题
1. 最简单的,使preference选项回来: gsettings set org.gnome.settings-daemon.plugins.xsettings overrides '@a{sv} ...
- 尚硅谷面试第一季-09SpringMVC中如何解决POST请求中文乱码问题GET的又如何处理呢
目录结构: 关键代码: web.xml <filter> <filter-name>CharacterEncodingFilter</filter-name> &l ...
随机推荐
- springboot+jpa分库分表项目实例
分库分表场景 关系型数据库本身比较容易成为系统瓶颈,单机存储容量.连接数.处理能力都有限.当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库.优化索引,做很多操作时性能仍下降严 ...
- python-13-集合增删查
前言 集合:可变的数据类型,但元素必须是不可变的数据类型,无序不重复,既可哈希.所以python的集合是不能进行修改的,只有增删查.可哈希.不可变数据类型有:元组.bool.int.str 一.增 1 ...
- 遍历json数据的几种方式
json(JavaScript Object Notation),json是一种多用于存储和交换文本信息的语法.他能够进行数据的传输,通常和ajax一起使用.它具有体积小.速度快,易解析等诸多优点. ...
- 2019-7-3-WPF-使用-Win2d-渲染
原文:2019-7-3-WPF-使用-Win2d-渲染 title author date CreateTime categories WPF 使用 Win2d 渲染 lindexi 2019-07- ...
- python基础(9):基本数据类型四(set集合)、基础数据类型补充、深浅拷贝
1. 基础数据类型补充 li = ["李嘉诚", "麻花藤", "⻩海峰", "刘嘉玲"] s = "_&qu ...
- php中搭建Web服务器和服务器配置
1.搭建Web服务器 1.1目录结构 1.2访问服务器 访问规则:http://服务器ip地址/php页面 比如: http://localhost/demo.php http://127.0 ...
- C++ static静态成员
01 基本概念 静态成员:在定义前面加了static关键词的成员. class A { public: A(int a, int b):m_a(a),m_b(b) { num += m_a + m_b ...
- Javase之多线程(1)
多线程(1) 多线程的概述 了解多线程之前需要先了解线程,而线程依赖于进程而存在,所以先了解进程. 什么是进程 进程就是正在运行的程序.是系统进行资源分配和调用的独立单位.每一个进程都有它自己的内存空 ...
- CSS3 3D变形 transform---rotateX(), rotateY(), rotateZ(), 透视(perspective)
2d x y 3d x y z 左手坐标系 伸出左手,让拇指和食指成“L”形,大拇指向右,食指向上,中指指向前方.这样我们就建立了一个左手坐标系,拇指.食指和中指分别代表X.Y.Z轴的正方向.如下图 ...
- Apache2 在Linux环境下的安装
安装Apache2: apt-get install apache2 启动Apache2服务: service apache2 start 在终端运行启动后,打开浏览器URL访问 http://loc ...