Eclipse 控制台输入中文再读出来乱码的解决方案

2024-02-29 18:18

本文主要是介绍Eclipse 控制台输入中文再读出来乱码的解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引用:http://www.cnblogs.com/wenjiang/archive/2013/01/15/2861774.html

最近遇到一个问题,就是我的Eclipse无法正确显示中文,情况如下:

1.读取一个文件的中文输出到控制台,发现乱码;

2.通过System.out输出到控制台,没有问题,但是重新读取输出到控制台的中文,乱码;

3.通过控制台输入内容,然后将这些内容写入一个文件,打开,乱码。

     我以为是我的Eclipse的中文编码设置有问题,但是全都改过后,发现问题依然存在,系统也是支持中文,设置没有问题。既然这样,那么,就是程序有问题。于是我就写了这么一个简单的代码:

   BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));System.out.println(reader.readLine());reader.close();

      检验我的控制台是否有问题,结果乱码。可能存在的问题只有两个地方:

1.System.in存在问题;

2.reader.readLine()有问题。

reader.readLine()暂时认为没有问题,因为BufferedReader是专门读取字符的,但是我这里有一个InputStreamReader是读取字节的,对于中文来说,是要占两个字节的,但是InputStreamReader一次只读取一个字节,如果中文的字节数是奇数,就有可能出现乱码。

   网上有很多方法,比如说,指定中文编码格式,我试过,不行。最后,终于找到一个方法,经测试可行,方法如下:

   (1)关闭Eclipse;

    (2)在Eclipse.exe同目录下,有一个eclipse.ini,打开,然后添加这么一句:

           -Dfile.encoding = utf-8

           保存;

    (3)重新打开Eclipse,问题就没有了。

        -Dfile.encoding = utf-8,就是字面上的意思,设置系统属性file.encoding为utf-8.

这篇关于Eclipse 控制台输入中文再读出来乱码的解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/759635

相关文章

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

Vuex Actions多参数传递的解决方案

《VuexActions多参数传递的解决方案》在Vuex中,actions的设计默认只支持单个参数传递,这有时会限制我们的使用场景,下面我将详细介绍几种处理多参数传递的解决方案,从基础到高级,... 目录一、对象封装法(推荐)二、参数解构法三、柯里化函数法四、Payload 工厂函数五、TypeScript

jupyter代码块没有运行图标的解决方案

《jupyter代码块没有运行图标的解决方案》:本文主要介绍jupyter代码块没有运行图标的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录jupyter代码块没有运行图标的解决1.找到Jupyter notebook的系统配置文件2.这时候一般会搜索到

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作