Windows10环境下的Eclipse控制台输出中文乱码的问题的解决

这篇具有很好参考价值的文章主要介绍了Windows10环境下的Eclipse控制台输出中文乱码的问题的解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 问题情形

操作系统:Windows10中文版
IDE:Eclipse 2022-12
开发语言:Java & JDK19
项目编码:UTF-8

写了一个很简单地main方法,打印出中文,结果出现了乱码的情形,如下图:
eclipse控制台中文乱码解决,eclipse,windows

2. 分析和解决过程

2.1 修改项目编码为GBK

上网搜索了很多解决方式,大部分都是说要更改项目的字符编码集。如下图:
eclipse控制台中文乱码解决,eclipse,windows
按照网上的说法将项目的编码字符集由UTF-8更改为了GBK,一番倒腾(具体倒腾过程就不赘述了),也确实能够将乱码问题解决。但总觉得就这样将问题解决是给人一种知其然但不知其所以然的感觉。
难道遇到乱码问题就只能将项目的字符编码集更改为GBK吗?如果项目实在是需要采用UTF-8字符集进行编码该怎么办呢?毕竟现在大家通用的都是采用UTF-8字符集进行编码。所以必须要再进一步研究该问题中的乱码情形的深层次原因。

2.2 还原乱码情形

其实乱码的本质是很好理解,字符串在网络和计算机中都是以字节码的形式进行传递和存储的,如果出现乱码,就说明字符串在进行编码时所使用的字符集和解码时所使用的字符集是不一致的。
针对本文中出现乱码的原文“你好,世界杯!”,我在站长工具中做了一番倒腾和测试,还原出了本文中出现乱码的情形。

2.2.1 将原文进行GBK编码

eclipse控制台中文乱码解决,eclipse,windows

2.2.2 将编码后的结果重新进行UTF-8解码

eclipse控制台中文乱码解决,eclipse,windows
解码后的结果:
eclipse控制台中文乱码解决,eclipse,windows
由此可以推断出,Eclipse中出现的乱码情形的原因和逻辑是这样的:
eclipse控制台中文乱码解决,eclipse,windows

2.2.3 分析

由于对Eclipse的工作原理了解有限,所以我无法知道Eclipse是怎样将源代码中的中文原文输出到控制台的,但由以上的情形演示可以肯定:Eclipse在将中文原文输出到控制台的过程中,肯定存在将原文进行GBK编码的过程。
但为什么要采用GBK编码呢?我的项目不都是采用UTF-8编码的吗?
于是我只能凭着直觉大胆猜测:每个操作系统应该也是有自己的字符编码集的,我的操作系统的字符编码集会不会是GBK,而Eclipse就是根据操作系统的字符编码集对原文进行编码操作的?
经过在网上搜索,搜到了更改Windows10的字符编码集的操作过程,我的操作系统的字符编码集并非UTF-8,应该就是GBK。

2.2.4 解决方式一
2.2.4.1 按Win键,然后点击“设置”

eclipse控制台中文乱码解决,eclipse,windows

2.2.4.2 输入“语言设置”,选择“语言设置”

eclipse控制台中文乱码解决,eclipse,windows

2.2.4.3 将鼠标拉倒界面底部,选择“管理语言设置”

eclipse控制台中文乱码解决,eclipse,windows

2.2.4.4 点击选择“管理 => 更改系统区域设置”

eclipse控制台中文乱码解决,eclipse,windows

2.2.4.5 勾选“Beta 版…”,然后点击“确定”

eclipse控制台中文乱码解决,eclipse,windows
如果“Beta 版…”勾选项未被勾选,则表示操作系统的字符编码集并非UTF-8。

2.2.4.6 重启计算机

eclipse控制台中文乱码解决,eclipse,windows

2.2.4.7 最后在保证项目编码为UTF-8的情形下重新打印输出,问题解决

eclipse控制台中文乱码解决,eclipse,windows
这个时候如果再将项目编码改为GBK,然后重新编辑源代码进行打印输出,反而会出现另一种乱码情形!各位码友可以自行验证。

2.2.5 解决方式二
2.2.5.1 设置执行时的编码方式

也可以不用配置操作系统的字符编码集,直接在Eclipse里面进行相应的设置就可以解决乱码问题,过程如下:

  1. 右击要被执行的Class,选择Run Configurations…,如下图:
    eclipse控制台中文乱码解决,eclipse,windows
  2. 进入配置界面以后,选择Class被执行时的编码,如下:
    eclipse控制台中文乱码解决,eclipse,windows
  3. 重新执行Class的main方法,乱码问题解决:
    eclipse控制台中文乱码解决,eclipse,windows
  4. 小结
    首先,该方法必须在每次执行新的Class的main方法时,都必须进行相应的字符编码配置,配置完以后,下次执行时就不需要重新配置。其次,如果main方法中引用了其它的Class类,而被引用的Class类又涉及到了中文输出,则相应的中文输出也会出现乱码,且通过这种配置方式无法解决。这种配置的深层次原因和逻辑为何本人也不了解,请对这种配置方式有深入了解的码友在评论区留言。

3. 总结

在Windows10系统中,Eclipse里面的项目的字符编码集必须与操作系统的字符编码集保持一致,这样在控制台的输出才不会出现乱码。
Windows10系统中的情形就是这样,各位码友若能给出其它更深层次的原因的解释,或者对其它操作系统的相似情形有所了解,则请在评论区留言!文章来源地址https://www.toymoban.com/news/detail-783363.html

到了这里,关于Windows10环境下的Eclipse控制台输出中文乱码的问题的解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 控制台反复输出WebSocket connection to ‘ws://10.133.212.203:8080/ws‘ failed:

    控制台反复输出WebSocketClient.js?5586:16 WebSocket connection to ‘ws://10.22.219.126:8080/ws’ failed: 今天打开vue项目,项目运行没问题,但是一直反复输出这个报错,很难受,如下: 找到的一个有效的解决方法: 在vue.config.js中配置如下代码:

    2024年02月10日
    浏览(30)
  • 控制台输出vue实例

    控制台输出vue实例的两种方法: 在这里我想介绍一下在控制台输出vue实例的两种方法,我觉得其中一种不管是vue框架还是其他框架都是适用的, 我就不说是哪种方法了 大家都可以试一遍: 1、前后端分离的项目中,如果挂载的id名是app,我们可以在控制台中这么打印获取: 2、

    2024年02月10日
    浏览(51)
  • idea-控制台输出乱码问题

    现象描述: 今天在进行IDEA开发WEB工程调式的时候控制台日志输出了乱码,如下截图 其实开发者大多都知道乱码是 编码不一致导致的,但是有时候就是不知到哪些地方不一致,今天我碰到的情况可能和你的不相同 解决方案 : 点击help = edit custom vm options 打开这个文件 末尾追

    2024年02月16日
    浏览(36)
  • 【DEVOPS】Jenkins使用问题 - 控制台输出乱码

    部门内部对于Jenkins的使用采取的是Master + Slave Work Node的方式,即作为Master节点的Jenkins只负责任务调度,具体的操作由对应的Slave Work Node去执行。 最近团队成员反馈一个问题:一个Linux系统的Slave Work Node的编译日志输出中,中文部分均为乱码(如下图),这造成问题排查效率

    2024年02月11日
    浏览(38)
  • Tomcat输出控制台中文乱码问题彻底解决

    目录 文章目录 前言 一、为什么会出现乱码 二、怎么处理乱码问题 1.修改注册表 2.脚步更改配置 三、修改后检查执行 总结         随着互联网的不断发展,软件部署这门技术也越来越重要,很多人在使用Tomcat部署web应用的过程中都遇过诸多的问题,本文就介绍了处理Tomca

    2024年02月08日
    浏览(40)
  • idea在控制台输出debug日志方法

    控制台输出效果如图 方法如下 1.在pom.xml文件中添加如下坐标 2.如果如下报错 则在main/resource下添加log4j.properties文件

    2024年02月20日
    浏览(41)
  • C# 在控制台整齐的输出 DataTable

    效果: 在 Winform 平台,可以用 DataGridView 这样的控件来显示数据库的表单数据,但在 C# 控制台项目中,如果有用到数据库查询,我们想看看查询语句的效果,就比较困难了,比如,我随意写了一个控制台输出,代码如下: 效果: 在 Navicat 16 for MySQL 软件中的查询结果 由于没

    2024年02月12日
    浏览(42)
  • 关于Tomcat控制台输出乱码的若干问题

    ​ 在学习Maven、Tomcat的过程中,发现会在不同的地方出现中文乱码,原本以为是某个设置没有正确,所以,出现乱码。后来发现,需要在不同的地方来进行调整,才能保证Tomcat在控制台的输出,以及Maven过程在参数传递过程中都不会出现乱码。第一次写文章,不怎么会写,大

    2024年02月09日
    浏览(30)
  • 编程笔记 Golang基础 011 控制台输入与输出

    Golang控制台输入与输入是用内置的 fmt 包来完成的。初学时要经常用到。 在软件开发工具(如Goland)中,控制台通常指的是集成开发环境(IDE)中的一个组件或面板,它模拟了命令行界面(CLI),允许开发者直接在IDE内部运行和调试程序,以及与操作系统进行交互。这个“控

    2024年02月20日
    浏览(34)
  • Pycharm控制台输出内容太多显示不全

    使用pycharm时经常会出现这样的问题:打印的东西太多,导致向上拉的行数不够,pycharm终端只能显示后面的信息,没办法看到最开始的信息。下面来解决这个问题 1、点击pycharm软件的help 2、找到Edit Custom Properties并进入 3、输入如下几行 如下图所示   1000000代表1000000KB,可自行调

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包