吐槽:

在克隆一些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. 【Redis】Redis Cluster初始化及PING消息的发送

    Cluster消息类型定义 #define CLUSTERMSG_TYPE_PING 0 /* Ping消息类型,节点间进行通信交换信息的消息 */ #define CLUSTERMSG_TYPE_P ...

  2. SAP 隐式增强 Enhancement point

    1.进入编辑器:SE38/SE37/SE24 Edit-->Enhancement Operations-->Create Option 2.填写相关信息,点击对号. 3.点击Enhanc ...

  3. 《The Tail At Scale》论文详解

    简介 用户体验与软件的流畅程度是呈正相关的,所以对于软件服务提供方来说,保持服务耗时在用户能接受的范围内就是一件必要的事情.但是在大型分布式系统上保持一个稳定的耗时又是一个很大的挑战,这篇文章解析的是 ...

  4. 用python进行加密和解密——我看刑

    加密和解密 密码术意味着更改消息的文本,以便不知道你秘密的人永远不会理解你的消息. 下面就来创建一个GUI应用程序,使用Python进行加密和解密. 在这里,我们需要编写使用无限循环的代码,代码将不断 ...

  5. 关于vm虚拟机的问题

    这几天搞虚拟机搞的头疼,真是一步一个坑,总结以下几个问题: 安装不了或用户不接受协议:原因应该是你之前装过vm,没有彻底清理,和本次安装形成了对抗,所以我们需要安装WindowsInstallerCl ...

  6. 深度学习基础-基于Numpy的多层前馈神经网络(FFN)的构建和反向传播训练

    本文是深度学习入门: 基于Python的实现.神经网络与深度学习(NNDL)以及花书的读书笔记.本文将以多分类任务为例,介绍多层的前馈神经网络(Feed Forward Networks,FFN)加上 ...

  7. JavaWeb的技术体系

    客户端和服务器端的交互 browser/ server(B/S)浏览器/服务器. client/server(C/S)应用/服务器.

  8. .NET Core 实现后台任务(定时任务)Longbow.Tasks 组件(三)

    原文链接:https://www.cnblogs.com/ysmc/p/16512309.html 在上两篇文章中,简单介绍了怎么使用 IHostedService 与 BackgroundServi ...

  9. 造!又有新的生产力语言了「GitHub 热点速览 v.22.30」

    作者:HelloGitHub-小鱼干 你还记得那些 PHP 开发都去哪了吗?转 Golang 了!移动端现在流行什么?Flutter 编程.现在谷歌带着新的生产力语言来了,Carbon,代号:C++ ...

  10. Linux串口编程进阶

    在<Linux串口编程>编程一文中介绍了串口应用中常用的基本操作,如:串口打开关闭.串口设置.数据收发等.本篇文章主要基于常规串口操作进行了扩充,主要介绍如下操作: Linux系统使用非标 ...