`
phantom
  • 浏览: 162448 次
社区版块
存档分类
最新评论

批量文件字符集编码转换

阅读更多
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.io.Writer;

public class Main {
	String filesDir = "";
	String filesNDir = "";

	public static void main(String args[]) throws IOException {
		cp("C:/Documents and Settings/Administrator/workspace/ABC/",
				"C:/Documents and Settings/Administrator/workspace/ABC2",
				"UTF-8", "GBK");
	}

	static void cp(String baseDir, String ndir, String code1, String code2)
			throws IOException {
		File file = new File(baseDir);
		if(file.isDirectory())
		 new File(ndir).mkdirs();
		if (file.isDirectory()) {
			
			String list[] = file.list();
			for (String f : list) {
				cp(baseDir + "/" + f, ndir + "/" + f, code1, code2);
			}
		} else {
			if (baseDir.indexOf(".php") > 0 || baseDir.indexOf(".html") > 0 || baseDir.indexOf(".js") > 0 || baseDir.indexOf(".xml") > 0 || baseDir.indexOf(".css") > 0) {

				convert(baseDir, ndir, code1, code2);
				InputStreamReader read = new InputStreamReader(
						new FileInputStream(baseDir), code1);// 或者UNICODE,UTF-16
				BufferedReader reader = new BufferedReader(read);
				String line;

				while ((line = reader.readLine()) != null) {
					System.out.println(line);
				}
				reader.close();

				read.close();
			}

		}
	}

	public static void convert(String infile, String outfile, String from,
			String to) throws IOException, UnsupportedEncodingException {
		
		// set up byte streams
		InputStream in;
		if (infile != null)
			in = new FileInputStream(infile);
		else
			in = System.in;
		OutputStream out;
		if (outfile != null)
			out = new FileOutputStream(outfile);
		else
			out = System.out;

		// Use default encoding if no encoding is specified.
		if (from == null)
			from = System.getProperty("file.encoding");
		if (to == null)
			to = System.getProperty("file.encoding");

		// Set up character stream
		Reader r = new BufferedReader(new InputStreamReader(in, from));
		Writer w = new BufferedWriter(new OutputStreamWriter(out, to));

		// Copy characters from input to output. The InputStreamReader
		// converts from the input encoding to Unicode,, and the
		// OutputStreamWriter
		// converts from Unicode to the output encoding. Characters that cannot
		// be
		// represented in the output encoding are output as '?'
		char[] buffer = new char[4096];
		int len;
		while ((len = r.read(buffer)) != -1)
			w.write(buffer, 0, len);
		r.close();
		w.flush();
		w.close();
	}

}

 

写道

 

分享到:
评论

相关推荐

    批量文件字符编码转换工具

    相当不错的文件编码转换工具,批量转换,省时省力。极力推荐!!

    字符集编码转换工具

    在信息化社会,数据交流频繁,各种文本文件、网页等都需要在不同的系统和平台间传递,而这些系统可能采用不同的字符编码标准,这就需要有字符集编码转换工具来确保信息的正确性和完整性。 字符集编码是计算机存储和...

    批量文件编码转换工具

    本工具名为"批量文件编码转换工具",专门针对那些需要处理大量文件编码问题的用户,能够有效地节省时间和精力。 GB2312编码,全称“中华人民共和国国家标准汉字编码”,是简体中文字符集的一种标准,主要应用于早期...

    批量转换字符集的小工具

    标题中的“批量转换字符集的小工具”指的是一个能够处理大量文件,将它们的字符编码从一种格式转换到另一种格式的应用程序。在IT领域,字符集转换是常见的需求,尤其是在处理不同地区、语言或平台的文本数据时。例如...

    超级批量编码转换 1.0

    《超级批量编码转换 1.0》是一款专为办公领域设计的高效实用工具,它能够帮助用户快速地处理大量文件的编码转换问题。在日常工作中,我们常常会遇到不同编码格式的文本文件,如ASCII、UTF-8、GBK等,这些不同的编码...

    文件编码格式批量转换工具.rar

    本文将深入探讨“文件编码格式批量转换工具”,重点讲解如何将文件从一种编码格式转换为UTF-8编码,以及涉及的字符集和Java编程语言的相关知识。 标题“文件编码格式批量转换工具.rar”表明这是一个可以处理多个...

    批量修改文件编码软件

    2. **正确选择编码**:确认目标编码的正确性,错误的编码转换可能导致文件内容无法正确显示。 3. **处理异常情况**:部分文件可能由于特殊编码或含有非标准字符,导致转换失败。软件应提供相应的错误提示和处理机制...

    pb调用外部函数进行字符集转换.zip

    在PowerBuilder(PB)开发中,处理不同字符集之间的转换是一项常见的任务,特别是在与不同系统交互或者处理多语言数据时。本压缩包“pb调用外部函数进行字符集转换.zip”提供了一些方法来实现UTF-8、GB2312和CP936...

    文件编码转换工具

    编码转换工具可以帮助用户理解这些文本,尤其是在遇到非标准编码或不常见的字符集时。 5. **gbk2utf**:这个可能是程序或脚本的文件名,表明它的功能是将GBK编码转换为UTF-8编码。在实际应用中,这样的工具可以批量...

    文件字符编码转换

    4. **字符编码转换工具**:如"ultracodingswitch.exe"这样的工具,它们提供用户界面,方便用户选择源文件或文件夹,以及目标编码格式,进行批量转换。这些工具能够解决不同编码格式之间不兼容导致的乱码问题,比如在...

    TXT电子书批量转换中文Unicode编码

    Unicode是一种国际标准,包含了世界上几乎所有的字符集,包括中文字符。它的使用可以避免由于编码不兼容导致的乱码问题。许多老旧的TXT文件可能采用GB2312、GBK或其他非Unicode编码,这些编码在现代设备上可能出现...

    批量修改文本文件的编码方式至UTF-8或ANSI,可用于批量修改CUE格式文件

    针对批量修改文件编码的需求,这里提供了一个名为“Ansi 2 Utf8.exe”的工具,它能够帮助用户快速地将TXT、CUE等文件从ANSI编码转换为UTF-8编码,反之亦然。这个工具支持的文件扩展名非常广泛,包括.txt、.html、....

    批量编码转化工具(实现文件编码的自动检测)

    不同的编码方式决定了字符集的大小和覆盖的字符范围。例如,ASCII只包含英文字符,而GBK则包含了更多的中文字符。UTF-8是一种多字节编码,可以表示世界上大部分语言的字符。 2. 自动检测编码的技术: 工具通常采用...

    GB/BIG5/UTF-8 文件编码批量转换程序

    不同的编码标准决定了字符集的表示方式,从而影响着文件的读取、存储和传输。本篇将详细讲解"GB/BIG5/UTF-8 文件编码批量转换程序"的相关知识点。 1. **文件编码** - **GBK(GB2312)**:GBK是中国大陆广泛使用的...

    UTF-8与GB2312文件编码转换(支持批量文件)

    总而言之,这个基于Qt5.9开发的文件编码转换工具,能够帮助用户批量处理UTF-8与GB2312编码的转换,解决因编码不匹配导致的乱码问题。同时,由于采用了Qt框架,该工具具备了跨平台、丰富的功能集以及良好的用户体验。...

    文本文件编码批量转换工具

    5. **批量转换**:确认设置无误后,点击开始转换按钮,工具将逐个处理文件,完成编码转换。 6. **注意只读文件**:在进行转换时,若遇到只读属性的文件,工具会跳过或者提示用户取消只读属性,以防止软件崩溃。 在...

    java批量转换文件编码

    不同的编码方式决定了字符集的范围和字符的二进制表示。GBK是中国大陆广泛使用的编码,包含了大部分中文字符;而UTF-8是一种国际通用的编码,能够表示世界上几乎所有的字符。 在Java中,进行文件编码转换主要涉及`...

    C# text文件编码批量转换(.net 2.0)

    批量转换文件编码的过程通常包括以下步骤: 1. **读取文件**:使用`StreamReader`打开文件,指定合适的编码。如果不确定编码,可以尝试读取BOM或使用`StreamReader`的自动检测功能。 ```csharp using (var reader ...

Global site tag (gtag.js) - Google Analytics