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
Eclipse编码问题的更多相关文章
- eclipse 编码设置
eclipse 编码设置 浏览:2840 | 更新:2013-12-31 10:07 一般Java文件编码格式是UTF-8的.以下以默认GBK改为UTF-8为例. 1.改变整个工作空间的编码格式,这样 ...
- Eclipse编码规范——Code Templates设置
Eclipse编码规范——Code Templates设置 Eclipse编码规范主要包括三个方面:设置Code Templates.Eclipse formatter.Checkstyle, 本篇主 ...
- 设置Eclipse编码方式
1.windows->Preferences...打开"首选项"对话框,左侧导航树,导航到 general->Workspace,右侧Text file encodin ...
- Eclipse编码设置(转载)
来源:http://e-ant.javaeye.com/blog/177579 如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java文件使用UTF-8编码.然而,E ...
- eclipse color themes 让eclipse编码好看点
http://eclipsecolorthemes.org/ 就是这个,很好用的! 安装后需要重启Eclipse.重启后打开Window->Preferences->General-> ...
- eclipse 编码改成utf-8
Eclipse的编码格式是系统默认 修改为utf-8,点击Apply and Close 然后项目的编码格式会统一默认utf-8 当然也可以选择other,改成GBK.
- eclipse 编码设置【转】
一般Java文件编码格式是UTF-8的.以下以默认GBK改为UTF-8为例. 1.改变整个工作空间的编码格式,这样以后新建的文件也是新设置的编码格式. eclipse->window->p ...
- eclipse编码转换
一般Java文件编码格式是UTF-8的.以下以默认GBK改为UTF-8为例. 1.改变整个工作空间的编码格式,这样以后新建的文件也是新设置的编码格式. eclipse->window-& ...
- eclipse编码设置
随机推荐
- jQuery学习笔记----入门
基础语法是:$(selector).action() 美元符号定义 jQuery 选择符(selector)“查询”和“查找” HTML 元素 jQuery 的 action() 执行对元素的操作
- Redis应用
一.什么是Redis? Redis是一个高性能的key-value内存数据库. 二.为什么使用Redis? Redis是NoSQL数据库,相比传统关系型数据库,内存数据库读写更快. 三.Redis怎么 ...
- UVA 10245 - The Closest Pair Problem
Problem JThe Closest Pair ProblemInput: standard inputOutput: standard outputTime Limit: 8 secondsMe ...
- python学习笔记(递归函数)
博主看了看递归.说的简单点就是程序里面再调用程序本身,或者是方法里面再调研方法本身.或者是函数里面再调研函数本身 用于什么场景呢,博主这里是父子节点排序,父子节点的查询 直接上代码: #!/usr/b ...
- Loggly:提高ElasticSearch性能的九个高级配置技巧
Loggly日志管理服务在其很多核心功能里使用ElasticSearch作为搜索引擎.Jon Gifford在其文章“ElasticSearch vs Solr”中指出,日志管理领域对搜索技术有了更高 ...
- Flex 播放视频
Flex提供视频控件(VideoDisplay Control)播放图像和声音. 视频控件只支持播放,暂停和停止功能.不提供倒退和前进功能.只支持播放FLV格式的影片. 1. 视频控件标签 对应的MX ...
- matlab读取txt文档中的数据
ps:文件中只有数字! format long fp=fopen('文件路径','打开方式(r)') [num,count]=fscnaf(fp,'%f')
- jquery的end(),addBack()方法example
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- NSString常见用法总结
//====================NSStirng 的常见用法==================== -(void)testString { //创建格式化字符串:占位符(由一个%加一个字 ...
- sessionStorage html5客户端本地存储之sessionStorage及storage事件
可以看一下<JavaScript本地存储实践(html5的localStorage和ie的userData)>sessionStorage和上文中提到的localStorage非常相识,方 ...