Java中文乱码浅析及解决方案
目录
- 直入主题
- 1.Java编译器自动选择的编码格式
- 2.所使用的命令行工具的编码格式
- 3.源代码文件的编码格式
- 4.Gradle项目配置中指定的编码格式
- 5.关于一些注意事项
- 写在最后
直入主题
我也不过多的解析什么案例什么的(想必各位遇到的比我都多),直接开始进入主题:
Java的中文乱码是多方面的,它与以下三个设置息息相关:
1.Java编译器自动选择的编码格式
2.所使用的命令行工具的编码格式(如Terminal,cmd等)
3.源代码文件的编码格式
也就是说,只要这三者有任何一个与其他两个不相同,或者是不同后没有合适的转换(特别是没有IDE的情况下),都会出现中文乱码问题。
需要注意的是,如果使用Gradle开发,那还需要加上一个:
4.Gradle项目配置中指定的编码格式
另外,使用其他的IDE也会有所不同
1.Java编译器自动选择的编码格式
很遗憾,这个问题我们并不能按照自己的意愿解决。Java编译器的编码格式选择完全取自于我们使用的操作系统和地区语言设置,比如当我们使用Windows11中文版时,Java编译器会自动使用GBK编码,目前我还没有想到什么办法解决。
当然,对于Linux用户来说这算不上什么,因为Linux上的Java会自动使用UTF-8编码(无论语言)
2.所使用的命令行工具的编码格式
拿cmd举例:
在cmd中键入chcp
获得的65001
,代表当前cmd使用的编码为UTF-8
获得的936
,则说明使用GBK编码
这个编码应该和Java编译器保持一致,我们可以使用chcp 936
更改为GBK编码。
控制台的编码与编译后输出相关,改它很有必要。
3.源代码文件的编码格式
这也是其他教程经常提到的一点
如果是使用notepad,请将在文件另存为时,选择编码格式为ANSI
如果使用IDEA,VSCode等,请自行更改为保持一致。
4.Gradle项目配置中指定的编码格式
如果使用了Gradle管理项目,我们需要特定的搭配
Java编译器GBK+控制台GBK+文本编码UTF-8+build.gradle配置为UTF-8
打开项目的build.gradle
文件,向其中加入下列代码
tasks.withType(JavaCompile){options.encoding="UTF-8" //这里最好选择UTF-8
}
下次编译将会使用指定的编码编译
5.关于一些注意事项
首先,在编译命令javac
后添加encoding=utf-8
真的不是一个有效的方法,除去繁杂一说,还存在许多不可言说的BUG
其次,所谓的将Windows操作系统更改为beta版的IUTF-8编码
(即下图),也不建议,确实,这样一启动CMD就是utf-8编码了,但是Java编译器仍然会使用GBK(而且控制台会中文乱码)。
另外,如果使用VSCode,其默认使用PowerShell进行编译,我们需要的编码应该是Java编译器GBK+控制台GBK+文本格式UTF-8,因为VSCode的Run会帮我们设置编码,所以需要特别的安排一下。
写在最后
通过这些解决中文乱码之后,继续开始黑C++吧
Java中文乱码浅析及解决方案相关推荐
- Java中文乱码破碎重组_Java 关于中文乱码问题的解决方案与经验
五.我们要对java的编译器有所了解: Javac ?encoding 我们常常没有用到encoding这个参数.其实encoding这个参数对于跨平台的操作是很重要的.如果没有指定encoding, ...
- Java中文乱码特殊字符解决方案
Java中文乱码&特殊字符解决方案 相信很多朋友遇到过Java的乱码问题,最近我也在解决一个"使用文本生成图片过程中中文以及特殊字符乱码"的问题:花了我大量时间,Debug ...
- JSP中文乱码问题终极解决方案(转)
JSP中文乱码问题终极解决方案 http://www.cnblogs.com/beijiguangyong/archive/2012/03/31/2437124.html 在介绍方法之前我们首先应该清 ...
- JSP中文乱码问题终极解决方案(上)
摘要: 本文首先介绍了一个JSP的源文件执行过程,即需要经过三个阶段,两次编码,才能完成一次完整的输出.特别需要注意的是,在这个过程中,编码问题贯穿始终.我们知道在JSP/Servlet中,主要有以下 ...
- java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**
原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)-–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...
- cmd运行Java中文乱码,无法加载主类Error: Could not find or load main class
网上说了好多方法,只说我用了的 cmd运行Java中文乱码 设置环境变量--系统环境变量 添加条目:JAVA_TOOL_OPTIONS 值:-Dfile.encoding=UTF-8 -Duser.l ...
- Mysql 中文乱码问题完美解决方案
Mysql 中文乱码问题完美解决方案 参考文章: (1)Mysql 中文乱码问题完美解决方案 (2)https://www.cnblogs.com/fangyh/p/6286699.html 备忘一下 ...
- RStudio中,出现中文乱码问题的解决方案
RStudio中,出现中文乱码问题的解决方案 参考文章: (1)RStudio中,出现中文乱码问题的解决方案 (2)https://www.cnblogs.com/nxld/p/6098987.htm ...
- J2EE (六) 详解 java 中文乱码
简介 在Java项目的开发过程中,经常会出现中文乱码的情况,这也是一直是困扰大家的一个问题,很多的程序员都会经常遇到这个问题. 有时捣鼓调试半天也摸不着头绪,不知道究竟哪里出了问题,那是你还不清楚出现 ...
最新文章
- 患上乳腺癌后开发AI诊断模型,这位MIT女科学家获得AAAI首届百万美元最高奖
- [C# 设计模式] Adapter - 适配器模式(两种)
- BM算法的shift1表是在所有情况下移动都是最快的吗?
- python ev3图形化编程软件下载_mPython(图形化编程软件)
- Modbus协议使用常见问题分析
- Leetcode每日一题:1370.increasing-decreasing-string(上升下降字符串)
- 冰点文库下载V2绿色版,无需积分自由下载百度,mbalib,豆丁,畅享,hp009,max.book118 文档...
- python 生成器原理_python生成器
- hadoop和spark的区别
- 1、最小二乘回归、Lasso、岭回归
- 代数学笔记1: 域扩张(一)
- 蓝牙模式-Inquiry and Page详细解析含参数
- 开心网(http://www.kaixin001.com)的一些JS代码分享
- LaTeX 公式左对齐与右对齐
- vue对比两段json文本修改,修改的项添加红色高亮显示
- 1 514.00 php,加拿大魁北克省區號514
- 北京理工计算机实验二报告,北京理工大学计算机实验二报告表.doc
- mybatis-day03-自带数据源、事务、动态sql、多表配置
- elxel表格纸张尺寸_用Excel轻松打印支票方法.pptx
- odex to dex boot.oat
热门文章
- P3964 [TJOI2013]松鼠聚会【切比雪夫距离】
- 扫地机器人灰尘堵住_不怕脏更不怕累!这才是清理扫地机器人的正确姿势
- 搜狗域名长期一直不收录解决方法
- 多维数据模型与大数据应用
- Last login: Wed Aug 24 17:23:14 2016 from wr702n.mshome.net
- 十次方中的前端知识点随记
- FPGA学习5-PL和PS互联
- windows10 WIFI功能不能使用了、没有WIFI模块或驱动安装失败
- 全球及中国高岭土市场运行规模与投资发展建议报告2022版
- foxmail接收邮件时提示RPC服务器不可用。错误代码:0x000006BA