window 下文件传给linux 乱码问题 解决方案
来源:互联网 发布:致信服务器ip端口 编辑:程序博客网 时间:2024/05/18 14:43
装载cygwin可以打成tar 包。然后如果文件有问题
Java用
iconv -f GBK -t utf-8 2010-10-30.txt –o 2010-10-30.txt
c用
iconv -f GBK -t utf-8 2010-10-30.txt > 2010-10-30.txt
如果文件有多个问题 可以用递归实现
具体如下:
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.util.regex.Pattern;
public class ChangeFile4ZH {
private static int total=0;
public static void main(String args[]){
System.out.println("请输入聊天根文件夹:");
Scanner sc = new Scanner(System.in);
String filePath = sc.nextLine();
if(filePath!=null && filePath.length()>0){
changeFileName(filePath);
}
}
public static void changeFileName(String filePath){
if(total %50==0){System.out.println("total:"+total);}
File file= new File(filePath);
if(file.exists()){
File[] filesList = file.listFiles();
for (File f : filesList) {
if(f.isFile()){
//重命名文件
renameFile( f.getAbsolutePath(),f.getParent() , f.getName());
total++;
}else{
changeFileName(f.getAbsolutePath());
}
}
}
}
public static void encode(String filePath){
if(total %50==0){System.out.println("total:"+total);}
File file= new File(filePath);
if(file.exists()){
File[] filesList = file.listFiles();
for (File f : filesList) {
if(f.isFile()){
//重编译文件内容
enConderFile(f);
total++;
}else{
encode(f.getAbsolutePath());
}
}
}
}
public static void delete(String filePath){
if(total %50==0){System.out.println("total:"+total);}
File file= new File(filePath);
if(file.exists()){
File[] filesList = file.listFiles();
for (File f : filesList) {
if(f.isFile()){
//删除原来文件
deleteFile(f.getAbsolutePath() ,f.getName());
total++;
}else{
delete(f.getAbsolutePath());
}
}
}
}
public static void enConderFile(File file){
Runtime runTime=Runtime.getRuntime();
try {
runTime.exec("iconv -f gbk -t utf-8 "+file.getPath() +" -o " +file.getParent()+File.separator+"bak"+file.getName());
} catch (Exception e) {
System.out.println("iconv -f gbk -t utf-8 "+file.getPath() +" -o " +file.getParent()+File.separator+"bak"+file.getName());
}
}
public static void renameFile(String realPath,String path,String fileName){
if(fileName.startsWith("bak")){
Runtime runTime=Runtime.getRuntime();
try {
runTime.exec(" mv "+realPath +" "+path+File.separator+ fileName.replaceFirst("bak",""));
} catch (IOException e) {
System.out.println(" mv "+realPath +" "+path+File.separator+ fileName.replaceFirst("bak",""));
}
}
}
//删除文件
public static void deleteFile(String realPath,String fileName){
String regPath = "^[//d]{4}-[//d]{2}-[//d]{2}.txt$";
Pattern pa=Pattern.compile(regPath);
if(pa.matcher(fileName).find()){
new File(realPath).delete();
}
}
}
- window 下文件传给linux 乱码问题 解决方案
- linux下文件乱码问题及编码方式
- linux与win下文件打开汉子乱码问题
- linux下文件乱码问题及编码方式
- window和linux下文件操作总结
- Linux下文件权限问题
- linux下文件显示和乱码
- Linux下文本行乱码问题
- Ubuntu下文件乱码
- Linux下文件权限更改问题
- linux 下文件复制到windows下乱码
- windows下文件在linux上乱码解决方法
- Linux下文件解压缩
- linux下文件锁
- linux下文件结构
- Linux下文件打包
- linux下文件操作
- Linux下文件说明
- sql字符串连接函数(mssql mysql oracle)
- “System.Web.UI.UserControl“不包含“xxxx”的定义
- 文本原样输出问题
- asp.net C int[]数组转换成decimal[]数组实例
- 路由器分类1【按使用级别分】
- window 下文件传给linux 乱码问题 解决方案
- Singleton模式代码
- 第一章梦话
- openCV中文网站
- Linux添加新分区并实现开机挂载
- Java Web开发常识总结
- 使用SingleTagSectionHandler实现简单配置节
- 大量小文件的实时同步方案
- 简单的BitVector