package com.common;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
public class ChangeEncoding {
public static void main(String[] args) {
String directory = "D:/tt/sdg_dw_tbgamenamedim5.txt";
// String suffix = ".txt";
// String fromEncoding = "gbk";
// String toEncoding = "utf-8";
// change(directory, suffix,fromEncoding, toEncoding);
convertGBKtoUTF8(directory);
}
public static void convertGBKtoUTF8(String dir){
String suffix = ".txt";
String fromEncoding = "gbk";
String toEncoding = "utf-8";
change(dir, suffix,fromEncoding, toEncoding);
}
/**
* 将指定目录directory(包含子目录)下的指定后缀名为suffix的文件,统一从编码格式为fromEncoding更改为toEncoding
*/
public static void change(String directory, String suffix, String fromEncoding, String toEncoding) {
File dir = new File(directory);
if (dir.isDirectory()) {
File[] list = dir.listFiles();
for (int i = 0; i < list.length; i++) {
File file = list[i];
changeFileCoding(suffix, fromEncoding, toEncoding, file);
}
}else if(dir.isFile()){
changeFileCoding(suffix, fromEncoding, toEncoding, dir);
}
}
private static void changeFileCoding(String suffix, String fromEncoding,
String toEncoding, File file) {
if (file.isFile() && file.getName().toLowerCase().endsWith(suffix)) {
System.out.println(file.getPath());
try {
InputStream in = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(in, fromEncoding));
File temp = new File(file.getPath() + ".tmp");
OutputStream out = new FileOutputStream(temp);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out, toEncoding));
String line = null;
while ((line = br.readLine()) != null) {
bw.write(line+"\r\n");
}
br.close();
in.close();
bw.close();
out.close();
file.delete();
temp.renameTo(file);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if (file.isDirectory()) {
change(file.getPath(), suffix, fromEncoding, toEncoding);
}
}
}
分享到:
相关推荐
批量编码转换,把大量GB2312编码的文件,快速转成UTF-8编码
本文将深入探讨批量文件编码转换工具,特别是“Utf-8转GB2312”与“GB2312转Utf-8”的转换过程,以及如何利用此类工具进行高效操作。 标题中的“批量文件编码转换工具”是指一种能够一次性处理大量文件,改变它们...
标题和描述中提到的"转换为GB2312.bat转换为UTF8.bat"暗示了这是一个批处理(batch script)文件,用于在两种不同的字符编码之间进行转换:GBK(GB2312)和UTF-8。GBK是中国大陆广泛使用的简体中文编码标准,而UTF-8...
提到的“目前最好用的GB2312和UTF8编码互转工具”可能是一款高效的软件,能够快速、稳定地完成这两种编码间的转换。尽管偶尔会出现个别文件的小错误,但整体而言,它的速度和稳定性表现优秀。对于那些需要处理大量...
总而言之,这个基于Qt5.9开发的文件编码转换工具,能够帮助用户批量处理UTF-8与GB2312编码的转换,解决因编码不匹配导致的乱码问题。同时,由于采用了Qt框架,该工具具备了跨平台、丰富的功能集以及良好的用户体验。...
GB2312简体文字在线转换UTF8代码转换工具
5. **字符转换gb2utf8**:这个压缩文件中的"字符转换gb2utf8"很可能是一个程序或脚本,用于将GB2312编码的文件转换成UTF-8编码。在实际操作中,用户可能需要先将文件解压缩,然后运行该程序,按照提示完成转换过程。...
例如,读取GB2312编码的文件并写入UTF-8编码的文件: ```python with open('input.txt', 'r', encoding='gb2312') as f_in: content = f_in.read() with open('output.txt', 'w', encoding='utf-8') as f_out: f...
GB2312和UTF-8是两种不同的字符编码标准,它们各自有其特点和适用范围。本资源提供了一个C语言实现的GB2312到UTF-8的转换函数,方便开发者在需要进行这种编码转换时使用。 GB2312是中国大陆早期广泛使用的简体中文...
例如,从UTF-8转GB2312可能需要先解析UTF-8编码的字节序列,然后找到对应的GB2312编码。 5. **内存管理**:在嵌入式环境中,内存资源有限,因此在进行编码转换时要考虑内存的高效使用,避免不必要的内存开销。 6. ...
“GB2312转换UTF-8”工具提供了一种便捷的解决方案,能够将使用GB2312编码的文件转换为UTF-8编码,确保在各种设备和浏览器上都能正常显示。同时,工具也支持反向操作,即UTF-8转GB2312,以满足特定场景的需求。 ...
在VB6.0编程环境中,有时我们需要处理不同字符编码之间的转换,例如将UTF-8编码的字符串转换为GB2312编码。UTF-8是一种广泛使用的Unicode编码,而GB2312是中国大陆常用的简体中文字符集,主要用于早期的计算机系统。...
在本场景中,我们面对的问题是“MFC UTF-8文件批量转成GB2312 解决中文乱码问题”,这涉及到文件的读取、编码转换以及文件的写入操作。 首先,我们需要理解UTF-8和GB2312这两种编码的区别。UTF-8是一种变长的...
2. 选择目标编码:根据需要,选择希望转换成的编码格式,如GB2312、UTF-8或UNICODE。 3. 转换操作:利用文本编辑器或者专门的编码转换工具,进行编码转换。这些工具能够读取源文件,将其内容按照新的编码规则重新...
修改xml文件的编码格式:GB2312格式修改为UTF-8
4. **写入新文件**:最后,将转换后的字节序列写入新的UTF-8编码文件中。如果原始文件是文本文件,如HTML、ASP、PHP、JSP等网页源代码,转换后的内容需要保持原有的结构和语义不变。 在实际操作中,可以使用各种...
该工具用于字符编码GB2312转UTF8,可批量转换。只需将该工具放置与需要转换文件的目录下,双击运行即可。 注意:需安装Python,Python 2和3 需安装通用编码检测器,文件内有安装方法; 该工具对于入门学习Python 也...
STM32 UTF-8编码转GB2312编码 源代码,一个.c文件
该工具用于字符编码UTF8转GB2312,可批量转换。只需将该工具放置与需要转换文件的目录下,双击运行即可。 注意:需安装Python,Python 2和3 需安装通用编码检测器,文件内有安装方法; 该工具对于入门学习Python 也...
标题中的“UTF8转GB2312源码”指的是一个特定的编程任务,即实现从UTF-8编码转换到GB2312编码的功能。UTF-8是一种广泛使用的Unicode字符编码,支持世界上几乎所有的字符集,而GB2312是中国大陆早期的一种简体中文...