吐槽:

在克隆一些Github上面资源的时候,使用idea打开,会出现乱码的情况

而使用eclipse打开,这种情况就会消失。「是因为eclipse使用的是GBK编码,idea使用的是utf-8」

这种情况困扰了我好几次,我也试过各种软件再转码,但是没丁儿用!

终于,今天又碰到了;

是可忍,孰不可忍!

于是自己写了一个Java类,专门用来将GBK编码的Java文件,转换成utf-8编码️

ps:改一改,可以讲utf-8,转换成GBK

技术点:递归,IO流

代码

以下是代码,如果是mac操作系统,以下代码应该不会有什么问题;

注意:

1、如果是window系统,文件路径/需要转换成\ (好像是的吧?)

2、强烈建议不要进行二次转换,更不要进行多次转换!!!

3、最好将需要转换的文件夹/文件复制一份,以免出现编码转换的意外

4、没了,以下代码有注释

package com.project_generator.eclipseConvert;

import org.junit.Test;

import java.io.*;
import java.util.List;

/**
* 建议:最好将需要转换的文件夹/文件复制一份,以免出现编码转换的意外
* 注意:不要进行二次转换,还有一定要确定被转换的文件是GBK格式的【一般,如果eclipse的文件放到idea中乱码,多半是GBK格式的】
*/
public class Converter {
// 复制完全一样的文件,包含文件夹里面的所有内容【略--手动处理】

public static void main(String[] args) throws IOException {
new Converter().converter(new File("这里填写自己文件夹or文件的绝对路径"));
    }

@Test
public void converter(File file) throws IOException {
convertEclipseFiles(file); // 【必改,文件的路径】
System.out.println("转换成功!");
}

public void convertEclipseFiles(File file) throws IOException {
if (!file.exists()) {
throw new RuntimeException("此文件或文件夹不存在");
}
if (file.isFile() && file.getName().endsWith(".java")) { //【可改,将eclipse里面的Java文件编码改成utf-8】
//!! 重写文件,最后删除原来的文件
String absolutePath = file.getAbsolutePath();
File file1 = new File(absolutePath.substring(0, absolutePath.length() - 5) + "_copy" + ".java");
convertEncoding(file,file1);
file.delete();
file1.renameTo(new File(absolutePath));
}
if (!file.isFile()) {
File[] fs = file.listFiles();// 获取当前文件夹下的子文件夹或者文件的file对象
if (fs != null && fs.length > 0) {
for (File ff : fs) {
convertEclipseFiles(ff);// 递归
}
}
}
}

/*
* 目标:把1.txt内容复制到2.txt
*/
public void convertEncoding(File oldFile, File newFile) throws IOException {
FileInputStream fis = new FileInputStream(oldFile);
FileOutputStream fos = new FileOutputStream(newFile);
byte[] content = new byte[1024];
int read = fis.read(content);
while (read != -1) {
// System.out.println(new String(content, 0, read, "GBK")); // 查看read的结果
fos.write(new String(content, 0, read, "GBK").getBytes("utf-8"));
read = fis.read(content);
}
}
}

解决eclipse中的Java文件,使用idea打开的乱码问题的更多相关文章

  1. eclipse中关闭java文件后再打开,找不到如何切换可视化编辑器

    http://www.iteye.com/problems/64806 两种方式:   第一种正如楼上的老兄说的.在该java类中,鼠标右击,移动到openWith上 找到jigloo,找不到就在ot ...

  2. 解决Eclipse中编辑xml文件的智能提示问题,最简单的是第二种方法。

    Eclipse for Android xml 文件代码自动提示功能,介绍Eclipse 编辑器中实现xml 文件代码自动智能提示功能,解决eclipse 代码提示失效.eclipse 不能自动提示. ...

  3. [转]解决Eclipse中编辑xml文件的智能提示问题

    转自:http://hi.baidu.com/cghroom/item/48fd2d0dc1fc23c675cd3c3e 摘要:  Eclipse for Android xml 文件代码自动提示功能 ...

  4. Windows中的txt文件到Mac打开是乱码 解决办法

    在Mac下打开“文本编辑”程序之后,选择菜单“文本编辑” -> “偏好设置”.2)在“偏好设置”中选择第二个标签页“打开和存储”,选择“纯文本文件编码”中的“打开文件”和“存储文件”修改成为“中 ...

  5. 解决Eclipse中新建jsp文件总是以ISO8859-1编码问题

    eclipse --> window -->Preferences-->web-->jsp-->utf-8

  6. 解决Eclipse中新建jsp文件ISO8859-1 编码问题

    看了许多的贴说是在eclipse --> window --> Preferences --> General --> Content Types --> text--& ...

  7. [转载]将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,解决办法

    eclipse 代码中文注释乱码 求解决 将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclips ...

  8. 解决Eclipse中.properties文件中文乱码问题

    在.properties文件写注释时,发现中文乱码了,由于之前在idea中有见设置.properties文件的编码类型,便找了找乱码原因 在中文操作系统中,Eclipse中的Java类型文件的编码的默 ...

  9. 解决eclipse中java代码注释变成乱码的问题

    Eclipse JAVA文件注释乱码将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码 ...

随机推荐

  1. 七、服务器硬件及RAID配置实战

    一.RAID磁盘阵列介绍 磁盘阵列的全名(Redundant Arrays of Inexpensive Disk,RAID),中文简称是独立冗余磁盘阵列.冗余(如果磁盘出现故障,可以保证数据不丢) ...

  2. Tensor的创建和维度的查看

    常见的Tensor创建方法 1,基础Tensor函数:torch.Tensor(2,2)32位浮点型 2,指定类型: torch.DoubleTensor(2,2)64位浮点型 3,使用python的 ...

  3. 实测:云RDS MySQL性能是自建的1.6倍

    1. 摘要 基于之前写的「云厂商 RDS MySQL 怎么选」的文章,为了进一步了解各云厂商在RDS MySQL数据库性能上的差异,本文将对自建MySQL.阿里云.腾讯云.华为云和AWS 的 RDS ...

  4. Vue.js CLI4 Vue.config.js标准配置 (最全注释)

    前言: Vue.js CLI工具 不知不觉发展到了4.0时代,CLI给人最直白的感受是没有了build文件夹跟config文件夹,所有的配置都在Vue.config.js完成.那么该文件的配置至关重要 ...

  5. 手把手教你用 Python 下载手机小视频

    今天为大家介绍使用 mitmproxy 这个抓包工具如何监控手机上网,并且通过抓包,把我们想要的数据下载下来. 启动 mitmproxy 首先我们通过执行命令 mitmweb 启动mitmproxy, ...

  6. Java 图片生成PDF

    public static void main(String[] args) { String imageFolderPath = "E:\\Tencet\\图片\\test\\" ...

  7. S32Kxxx bootloader之UDS bootloader

    了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 两周前完成了基于UDS ...

  8. 30行自己写并发工具类(Semaphore, CyclicBarrier, CountDownLatch)是什么体验?

    30行自己写并发工具类(Semaphore, CyclicBarrier, CountDownLatch)是什么体验? 前言 在本篇文章当中首先给大家介绍三个工具Semaphore, CyclicBa ...

  9. Keep In Line_via牛客网

    题目 链接:https://ac.nowcoder.com/acm/contest/28537/H 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语 ...

  10. C#异步延迟Task.Delay

    一. 1.Task.Delay实质是创建一个任务,再任务中开启一个定时间,然后延时指定的时间2.Task.Delay不和await一起使用情况,当代码遇到Task.Delay一句时,创建了了一个新的任 ...