通常在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

Eclipse编码问题的更多相关文章

  1. eclipse 编码设置

    eclipse 编码设置 浏览:2840 | 更新:2013-12-31 10:07 一般Java文件编码格式是UTF-8的.以下以默认GBK改为UTF-8为例. 1.改变整个工作空间的编码格式,这样 ...

  2. Eclipse编码规范——Code Templates设置

    Eclipse编码规范——Code Templates设置 Eclipse编码规范主要包括三个方面:设置Code Templates.Eclipse formatter.Checkstyle, 本篇主 ...

  3. 设置Eclipse编码方式

    1.windows->Preferences...打开"首选项"对话框,左侧导航树,导航到 general->Workspace,右侧Text file encodin ...

  4. Eclipse编码设置(转载)

    来源:http://e-ant.javaeye.com/blog/177579 如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java文件使用UTF-8编码.然而,E ...

  5. eclipse color themes 让eclipse编码好看点

    http://eclipsecolorthemes.org/ 就是这个,很好用的! 安装后需要重启Eclipse.重启后打开Window->Preferences->General-> ...

  6. eclipse 编码改成utf-8

    Eclipse的编码格式是系统默认 修改为utf-8,点击Apply and Close 然后项目的编码格式会统一默认utf-8 当然也可以选择other,改成GBK.

  7. eclipse 编码设置【转】

    一般Java文件编码格式是UTF-8的.以下以默认GBK改为UTF-8为例. 1.改变整个工作空间的编码格式,这样以后新建的文件也是新设置的编码格式. eclipse->window->p ...

  8. eclipse编码转换

    一般Java文件编码格式是UTF-8的.以下以默认GBK改为UTF-8为例. 1.改变整个工作空间的编码格式,这样以后新建的文件也是新设置的编码格式.     eclipse->window-& ...

  9. eclipse编码设置

随机推荐

  1. POJ 2352 【树状数组】

    题意: 给了很多星星的坐标,星星的特征值是不比他自己本身高而且不在它右边的星星数. 给定的输入数据是按照y升序排序的,y相同的情况下按照x排列,x和y都是介于0和32000之间的整数.每个坐标最多有一 ...

  2. nyoj 99 单词拼接

    点击打开链接 单词拼接 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描述 给你一些单词,请你判断能否把它们首尾串起来串成一串. 前一个单词的结尾应该与下一个单词的道字母相同 ...

  3. 303. Range Sum Query - Immutable

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...

  4. MapReduce从HBase读写数据简单示例

    就用单词计数这个例子,需要统计的单词存在HBase中的word表,MapReduce执行的时候从word表读取数据,统计结束后将结果写入到HBase的stat表中. 1.在eclipse中建立一个ha ...

  5. Android——学习笔记

    1.this注意 @Override            public void onItemSelected(AdapterView<?> parent, View view,     ...

  6. VMware10中的CentOS6.5命令行安装VMwaretools工具启用windows与虚拟机中Linux系统的共享目录

    VMware10中的CentOS6.5命令行安装VMwaretools工具启用windows与虚拟机中Linux系统的共享目录 一.描述 系统描述:win7旗舰版64位系统+VMware Workst ...

  7. 运行时---关联Associated

    关联:指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分   一.在类的定义之外为类增加额外的存储空间        使用关联,我们可以不用修改类的定义而为其对象增加存储空间.这在我 ...

  8. oracle通过DBlink连接mysql(MariaDB)

    1.安装先装 mysql-connector-odbc(或 mariadb-connector-odbc )和unixODBChttps://downloads.mariadb.org/mariadb ...

  9. [vsftp]500 OOPS: cannot change directory

    这个报错需要检查 1./etc/passwd 用户的主目录 2./etc/vsftpd/vuser_conf 下每个用户的local_root 3.每个用户目录给ftpuser加上rwx权限,一定要有 ...

  10. 操作笔记:tomcat在正式环境

    1,一台服务器有两个容器,比如:jetty,tomcat. 出现问题: jetty启动的时候,tomcat就不能启动了. 此时,需要修改tomcat的配置文件:servler.xml <?xml ...