Native2Ascii(调用Java自带工具进行unicode和中文字符互转)

参考类似此文 http://tiger-hu.iteye.com/blog/848742
【引用修改自此文】 http://www.cnblogs.com/pencilsoft/archive/2009/04/16/1436872.html
主要思想其实就是第一篇参考文章以及Java调用Java自带bin文件夹下面的工具exe方法
public class Native2Ascii {
	private static String java_bin_path = "D:\\Java\\jdk1.6.0_10\\bin";// 存放中文的文本文件
	private static String source_file = "E:\\src.txt";
	private static String result_file="E:\\result.txt";
	
	public static void main(String[] args) {
		String result = fromUnicode(source_file,result_file,"gbk");
		System.out.println(result);
	}

	public static String toUnicode(String destFileName,String result_file) {
		StringBuffer tempSb = new StringBuffer();
		try {
			Process p = Runtime.getRuntime().exec(
					java_bin_path + "\\native2ascii.exe " + destFileName+" "+result_file);
			InputStreamReader child_in = new InputStreamReader(p
					.getInputStream());
			int c;
			while ((c = child_in.read()) != -1) {
				tempSb.append((char) c);
			}
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (IOException ex) {
			ex.printStackTrace();
		}

		return tempSb.toString();
	}
	public static String fromUnicode(String destFileName,String result_file,String decode) {
		StringBuffer tempSb = new StringBuffer();
		try {
			Process p = Runtime.getRuntime().exec(
					java_bin_path + "\\native2ascii.exe -reverse -encoding " +decode+" "+ destFileName+" "+result_file);
			InputStreamReader child_in = new InputStreamReader(p
					.getInputStream());
			int c;
			while ((c = child_in.read()) != -1) {
				tempSb.append((char) c);
			}
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (IOException ex) {
			ex.printStackTrace();
		}
		
		return tempSb.toString();
	}
	
	public static String getJava_bin_path() {
		return java_bin_path;
	}

	public static void setJava_bin_path(String java_bin_path) {
		Native2Ascii.java_bin_path = java_bin_path;
	}
	public static String getSource_file() {
		return source_file;
	}

	public static void setSource_file(String source_file) {
		Native2Ascii.source_file = source_file;
	}

	public static String getResult_file() {
		return result_file;
	}

	public static void setResult_file(String result_file) {
		Native2Ascii.result_file = result_file;
	}	
}

你可能感兴趣的:(java,C++,c,C#,Blog)