Eclipse编码问题

通常在Eclipse下,mac和windows编码是不一样的。如果含有中文java sources通常会出现乱码。

解决---小程序!

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;

public class CharEncodingExchange {

	private final static String SOURCE_ENCODING = "EUC-CN";

	private final static String TARGET_ENCODING = "UTF-8";

	private static String SOURCE_DIR = "/Users/pandans/Desktop/CoastalBank/src";

	private static String TARGET_DIR = "/Users/pandans/Desktop/tmp";

	/**
	 *
	 * @param args
	 */

	public static void main(String[] args) {

		// TODO Auto-generated method stub

		try {

			exchange(SOURCE_DIR);

		} catch (Exception e) {

			// TODO Auto-generated catch blockXj

			e.printStackTrace();

		}

	}

	/**
	 *
	 * exchange the character encoding from srcDir to targetDir
	 *
	 *
	 *
	 * @param srcDir
	 *
	 * @param targetDir
	 */

	public static void exchange(String srcDir) {

		String absPath = "";

		if (!srcDir.equals(SOURCE_DIR)) {

			absPath = srcDir.substring(SOURCE_DIR.length());

			String targetDir = TARGET_DIR + absPath;

			File targetDirectory = new File(targetDir);

			if (targetDirectory.isDirectory() && !targetDirectory.exists()) {

				targetDirectory.mkdirs();

			}

		}

		File sourceDirectory = new File(srcDir);

		if (sourceDirectory.exists()) {

			if (sourceDirectory.isFile()) {

				String targetFilePath = TARGET_DIR + absPath;

				try {

					fileEncodingExchange(sourceDirectory, targetFilePath);

				} catch (IOException e) {

					// TODO Auto-generated catch block

					e.printStackTrace();

				}

			} else {

				File[] childs = sourceDirectory.listFiles();

				for (File child : childs)

					exchange(child.getPath());

			}

		}

	}

	private static void fileEncodingExchange(File infile,

	String targetAbsFilePath) throws IOException {

		FileInputStream fin = null;

		FileOutputStream fout = null;

		FileChannel fcin = null;

		FileChannel fcout = null;

		System.out.println(infile + " " + targetAbsFilePath);

		String tmpTargetPath = targetAbsFilePath.substring(0, targetAbsFilePath

		.lastIndexOf(File.separator));

		File tmpTargetDir = new File(tmpTargetPath);

		if (!tmpTargetDir.exists())

			tmpTargetDir.mkdirs();

		try {

			fin = new FileInputStream(infile);

			fout = new FileOutputStream(targetAbsFilePath);

			fcin = fin.getChannel();

			fcout = fout.getChannel();

			ByteBuffer buffer = ByteBuffer.allocateDirect(1024);

			while (true) {

				buffer.clear();

				int r = fcin.read(buffer);

				if (r == -1) {

					break;

				}

				buffer.flip();

				String encoding = System.getProperty("file.encoding");

				fcout.write(ByteBuffer.wrap(Charset.forName(encoding).decode(

				buffer).toString().getBytes(TARGET_ENCODING)));

			}

		} catch (FileNotFoundException e) {

			// TODO Auto-generated catch block

			e.printStackTrace();

		} catch (IOException e) {

			// TODO Auto-generated catch block

			e.printStackTrace();

		} finally {

			if (fin != null) {

				fin.close();

			}

			if (fcin != null) {

				fcin.close();

			}

			if (fout != null)

				fout.close();

			if (fcout != null)

				fcout.close();

		}

	}

}

自己修改路径。

命令行下运行

编译。

javac CharEncodingExchange.java

运行:

java CharEncodingExchange

先把工程编码变成想要的编码。这里是UTF-8

把tmp的文件覆盖到工程src下。

--------------Eclipse修改默认编码---------------

UTF-8

这个修改了整个工程会自动变。

UTF-8

时间: 2024-08-09 08:06:34

Eclipse编码问题的相关文章

Eclipse编码设置

网站代码主要使用GBK编码格式,Eclipse默认打开的是UTF8编码,所以经常是需要进行转换一下的,否则一些中文字符就会乱码显示. 1.配置workspace的编码格式:windows->Preferences->general->Workspace,右侧Text file encoding,选择Other,改变为GBK;2.配置工程的编码格式:Project->Preferences->Resource->Text file encoding;3.配置java文件的

Eclipse 编码设置问题

[现象]Eclipse+Pydev 开发时,运行时提示如下: SyntaxError: Non-ASCII character '\xe5' in file D:\..\src\Auto.py on line 2, but no encoding declared; see http://www.python.org/peps/ for details [原因]代码中含中文,Python的文件,默认的编码是ASCII,而Eclipse中默认的编码方式是GBK,所以出错. [处理]在Python代

修改Eclipse编码问题

1.修改Eclipse的编码问题 修改配置文件eclipse.ini,在最后加上 -Dfile.encoding=UTF-8 2.指定不同类型文件的编码 window - preferences - General - Content Types

设置eclipse编码方式

修改eclipse默认工作空间编码方式.点击“Window->Preferences->General->Workspace->Other”

eclipse编码

在preferences中将“Text file encoding”设成utf-8 导入一个源文件test.java test.java的编码格式是GB2312 在eclipse中打开时,test.java中的中文乱码,将编码设置成GBK也没用. 正确的打开姿势是: 在导入源文件之前将eclipse的编码格式设成GBK,这样导入源文件后就能正常显示中文了. GBK和GB2312的关系: GBK中包含了GB2312中的全部汉字 GBK向下与GB2312完全兼容.

eclipse编码方式、标签语言获取根目录

1.设置工作空间编码方式: window-->preference-->general -->workspace 中设置Text file encoding 把编码方式改为UTF-8 2.设置jsp文件的编码方式,默认是latin-1,是不支持中文的.window-->preferences-->web--> JSP Files 中选择Encoding,把编码方式改为UTF-8. 3.修改常用文件编码方式window-->preferences-->gene

eclipse 编码设置

来源: http://kodak-zhou.iteye.com/blog/1004722 一般Java文件编码格式是UTF-8的.以下以默认GBK改为UTF-8为例. 1.改变整个工作空间的编码格式,这样以后新建的文件也是新设置的编码格式.     eclipse->window->preferences->General->workspaceTypes->Other->UTF-8->OK 汉化版:eclipse->窗口->首选项->常规->

【Java+Eclipse 编码设置】MD5编码引发的血案

先讲下事情的起因: 做了一个Java web project: 其中有一个java文件,里有个函数: /** * @param s * @return 获取数据的MD5 */ public static String MD5(String s ) { char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; try { byte[] btInput = s.getBytes(); //

eclipse 编码设置<非原创>

一般Java文件编码格式是UTF-8的.以下以默认GBK改为UTF-8为例. 1.改变整个工作空间的编码格式,这样以后新建的文件也是新设置的编码格式.     eclipse->window->preferences->General->workspaceTypes->Other->UTF-8->OK 汉化版:eclipse->窗口->首选项->常规->工作空间->其它->UTF-8->确定 2.项目范围的设置编码格式 P