前几天,朋友因手机上看小说很难受,想将小说下载后,导入到kindle看,然后发现下载后的小说是乱码,遂求助到我这里。
随手用idea打开看了一下,是gbk格式的txt,遂写个了转换类,可将文件编码格式转为指定的编码格式。
很简单,以下是代码
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
/**
* @author ming
* @date 2023/7/5 11:11
*/
public class TransGbk {
public static void main(String[] args) throws IOException {
File file = new File("D:\\test\\test.txt");//文件输入路径
String destName = "D:\\test\\test_UTF8.txt";//文件输出路径
String srcEncoding = "GBK";//文件原本编码格式
String destEncoding = "UTF-8";//要转换成的编码格式
trans(file, destName, srcEncoding, destEncoding);
}
private static void trans(File file, String destName, String srcEncoding, String destEncoding) throws IOException {
String line_separator = System.getProperty("line.separator");//换行,适应win/mac/linux 有些网站下的盗版文档没有换行
FileInputStream fis = new FileInputStream(file);
StringBuilder content = new StringBuilder();
DataInputStream in = new DataInputStream(fis);
BufferedReader d = new BufferedReader(new InputStreamReader(in, srcEncoding));// , "UTF-8"
String line = null;
while ((line = d.readLine()) != null) {
content.append(line).append(line_separator);
}
d.close();
in.close();
fis.close();
Writer ow = new OutputStreamWriter(Files.newOutputStream(Paths.get(destName)), destEncoding);
ow.write(content.toString());
ow.close();
}
}