`
isiqi
  • 浏览: 16356394 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

批量转换Uncode编码的文件

阅读更多

JDK自带的工具native2ascii可以将uncode编码的文件转换为本地编码的文件,但是不能批量转换文件。现在介绍小工具可以批量转换所有的文件。

首先下载工具UncodeReverse.exe,下载地址:http://download.csdn.net/source/344466,如果想自己编译程序,可以继续向下看。

使用命令编译打包过程如下:

UncodeReverseD:src

将d:\src下所有子目录中的资源文件(*.properties文件),按照Unicode转换为本地编码,转换后的文件名后加“.reverse”。

UncodeReverseD:src"*.java"

将d:\src下的所有java文件的uncode编码转换为本地编码,并且文件名称后加“.reverse”。

UncodeReverseD:src"*_zh.properties"

将d:\src下所有子目录中的所有中文资源文件文件,按照Unicode转换为本地编码,转换后的文件名后加“.reverse”。
命令的输出如下:

d:srcallMessages_zh_CN.properties->allMessages_zh_CN.properties.reversesuccess.

程序代码如下:

/**//*
*UncodeReverse.java
*ZhaoHonghui
*/

importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileFilter;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.regex.Pattern;

/***//**
*将利用native2ascii命令编码的资源文件反向.<br>
*native2ascii&lt;resource.properties&gt;resource_zh_CN.properties<br>
*java-jarUncodeReverse.jar<br>
*
*
@authorZhaoHonghui
*
@version1.0d
*
*/

publicclassUncodeReverse...{

privatestaticfinalStringVERSION="v1.0f";

privatestaticbooleanSkipComment=false;

publicstaticvoidmain(Stringargs[])...{
Stringpath
=null;
/**//*
*默认匹配所有的资源文件.
*/

StringfileName
=null;
for(inti=0;i<args.length;i++)...{
if(args[i].startsWith("-S"))...{
SkipComment
=true;
}
else...{
if(path==null)...{
path
=args[i];
}
elseif(fileName==null)...{
fileName
=args[i];
}

}

}

if(path==null)...{
usage();
System.exit(
-1);
}

if(fileName==null)...{
fileName
="*.properties";
}

Filefile
=newFile(path);
if(!file.isDirectory())...{
System.out.println(
"["+file+"]notexistsornotdirectory.");
usage();
System.exit(
-1);
}

reverseProperties(file,
newUncodeFileFilter(fileName));
}


privatestaticFile[]reverseProperties(Filefile,FileFilterfilter)...{
File[]files
=file.listFiles(filter);
for(inti=0;i<files.length;i++)...{
if(files[i].isDirectory())...{
reverseProperties(files[i],filter);
}
else...{
Filesource
=files[i];
/**//*
*文件名后添加.reverse后缀.
*/

Filetarget
=newFile(files[i].getParent(),files[i].getName()
+".reverse");
//if(target.exists()){
//System.out.println("Targetfile["+target
//+"]exits,break.");
//}else{
if(decodeFile(source,target))...{
System.out.println(source
+"->"+target.getName()
+"success.");
}
else...{
System.out.println(source
+"error.");
target.delete();
}

//}
}

}

returnfiles;
}


privatestaticbooleandecodeFile(Filesource,Filetarget)...{
BufferedReaderread
=null;
BufferedWriterwriter
=null;
try...{
read
=newBufferedReader(newFileReader(source));
writer
=newBufferedWriter(newFileWriter(target));
writer.write(
"#ReversebyUncodeReverse"+VERSION
+".Copyright2007ZhaoHonghui(zhaohonghui@hotmail.com)"
+"http://blog.csdn.net/z3h.");
writer.newLine();
writer.write(
"#SourceFileName:"+source.getAbsolutePath());
writer.newLine();
Strings
=read.readLine();
while(s!=null)...{
Stringt
=decodeString(s);
writer.write(t);
writer.newLine();
s
=read.readLine();
}

returntrue;
}
catch(IOExceptione)...{
System.out.println(e.getClass()
+":"+e.getMessage());
returnfalse;
}
finally...{
try...{
if(read!=null)...{
read.close();
}

if(writer!=null)...{
writer.close();
}

}
catch(IOExceptione)...{
e.printStackTrace();
}

}

}


privatestaticStringdecodeString(Stringstr)...{
if(SkipComment&&str.trim().startsWith("#"))...{
returnstr;
}

StringBufferbuf
=newStringBuffer(str.length());
booleanflag=false;
booleanuflag=false;
intcnt=0;
char[]uncode=newchar[4];
for(inti=0;i<str.length();i++)...{
charc=str.charAt(i);
if(c=='\')...{
flag
=true;
continue;
}

if(flag&&c=='u')...{
uflag
=true;
continue;
}
else...{
if(flag&&!uflag)...{
buf.append(
"\");
}

flag
=false;
}

if(uflag&&cnt<5)...{
uncode[cnt]
=c;
cnt
++;
if(uflag&&cnt==4)...{
try...{
buf.append((
char)Integer.parseInt(newString(uncode),
16));
}
catch(NumberFormatExceptionNfe)...{
buf.append(
"\u"+newString(uncode));
}

flag
=false;
uflag
=false;
cnt
=0;
}

}
else...{
buf.append(c);
}

}

<img alig
分享到:
评论

相关推荐

    TXT电子书批量转换中文Unicode编码

    "TXT电子书批量转换中文Unicode编码"这个工具就是为了应对这种情况而设计的。它是一个高效、便捷的解决方案,帮助用户将TXT格式的电子书从非Unicode编码转换为Unicode编码,确保在各种设备上都能正确显示中文字符。 ...

    批量转换utf8Unicode文件 免费版@86_1_108426

    此资源"批量转换utf8Unicode文件 免费版@86_1_108426"显然是一个工具,旨在帮助用户方便地将文件从UTF-8编码转换为Unicode编码,或者反之亦然。 首先,让我们了解UTF-8和Unicode的区别。Unicode是一个字符集,它...

    txt文件编码批量转换器 V2.1版

    转换器的使用方法很简单,只需把你要转换的txt文件放到任意一个文件夹里面,然后运行txt文件编码批量转换器,选择你要转换的编码,然后点击选择文件夹按钮,在弹出窗口中选择你放txt文件的那个文件夹,然后确定。...

    TXT编码批量转换 V2.0编码UnicodeANSIUTF-8互转软件功能Unicode转ANSI转UTF-8互转软件.exe

    Txt文件编码批量转换器用于批量转换txt文本文档的编码格式。通常,我们电脑里的txt文件都是ASNI编码,当放到手机或MP3里时,打开看到的往往都是乱码,面目全非。我们需要先把它们转换为Unicode格式,才能够在手机和...

    批量转换unicode格式为ansi

    总结来说,批量转换Unicode格式到ANSI格式涉及字符编码的理解、文件读写操作、字符转换逻辑以及错误处理策略。"convertansi"工具或脚本通过自动化这些步骤,为用户提供了方便,特别是在需要处理大量文本文件的场合。...

    vs文件编码批量转换工具

    此工具可批量修改文件编码(默认gb2312转utf8,可修改) python版本:2.7 使用说明: dirGb2312ToUtf8('F:\work\MyProject\Source\MyProject') 把以上路径改为自己需要转换的文件夹即可

    编码批量转换工具

    是您必备的unicode编码转换器,它帮助您快速完成编码批量转换。 utf8 转gb2312编码转换举例,编码转换软件工作原理 比如要把D:\web目录下的php文件和html文件由utf8转gb2312编码, 转换时排除test开头的文件 1 选择...

    编码转换小工具,包含多种编码的相互转换[html编码转换 unicode编码转换 url编码转换 编码转换],基于framework 3.5的winform程序

    该工具的新增功能允许用户选择文件或文件夹进行批量转换,这对于处理大量含有特殊字符的文件或目录来说,无疑大大提高了效率。然而,在使用之前,请确保你的计算机已经安装了.NET Framework 3.5,这是一个由微软开发...

    unicode至汉字的批量转换

    批量转换Unicode码至汉字是一个常见的需求,特别是在处理大量文本数据时。在提供的描述中,提到了一个工具或者程序,用户可以输入Unicode码的起始码和结束码,程序会将这一范围内所有的Unicode码转换为对应的汉字,...

    unicode批量转换工具

    Unicode批量转换工具是一种实用软件,专门设计用于帮助用户将TXT文本文件批量转化为Unicode编码格式。在信息技术领域,Unicode是一个国际标准,它定义了一个字符集,包括世界上几乎所有的书写系统,确保了不同语言的...

    批量转换Ansi文本至Unicode文本工具

    标题中的“批量转换Ansi文本至Unicode文本工具”是指一种软件工具,它的主要目标是将存储为Ansi编码格式的文本文件转换成Unicode编码格式。Ansi编码是一种基于特定区域设置的编码方式,通常与系统默认语言关联,不...

    批量文件编码转换工具

    然而,随着互联网的发展和国际化的需求,UTF-8编码逐渐成为主流,它是一种变长的Unicode编码方式,可以表示世界上几乎所有的字符,包括中文、英文、日文等,且在网页和编程中具有更好的兼容性。 批量文件编码转换...

    批量转换网页文件编码工具

    ASCII主要针对英文,GBK是中国大陆常用的扩展ASCII编码,包含了更多的中文字符,而UTF-8是一种广泛使用的Unicode编码,能容纳几乎世界上所有语言的字符。 批量转换工具通常具备以下功能: 1. **选择源编码**:用户...

    批量文件编码转换器.zip

    批量文件编码转换器的主要功能在于将文件从一种编码格式批量转换为另一种,例如将GBK编码的文件转换成UTF-8编码。这种转换对于处理旧项目、迁移数据或者确保文件在不同系统间兼容性是十分必要的。与手动使用文本编辑...

    编码转换小工具,增加了批量转换功能[html编码转换 unicode编码转换 url编码转换 编码转换]

    在原来的基础上加了选择文件和文件夹的转换功能,这是基于framework 3.5的winform程序,使用前请确定自己的电脑是否安装了framework 3.5

    批量转换文件编码工具

    标题“批量转换文件编码工具”暗示了这个软件或程序具有处理大量文件的能力,能够一次性对多个文件进行编码转换,节省了手动操作的时间和精力。这种工具通常适用于开发者、数据分析师或任何需要处理大量文本文件的...

    超级批量编码转换 1.0

    《超级批量编码转换 1.0》是一款专为办公领域设计的高效实用工具,它能够帮助用户快速地处理大量文件的编码转换问题。在日常工作中,我们常常会遇到不同编码格式的文本文件,如ASCII、UTF-8、GBK等,这些不同的编码...

    超级批量编码转换工具

    使用该工具进行批量转换的过程简单高效。首先,用户需要将待转换的文件集中在一个目录下,然后选择该目录作为转换源。工具会自动扫描并列出所有符合转换条件的文件。用户可以选择转换全部文件,也可以根据需要自定义...

    文本文件编码批量转换工具

    3. **网站内容迁移**:在更换网站服务器或内容管理系统时,可能需要将旧的GBK编码文件转换为更适合国际化标准的UTF-8。 使用文本文件编码批量转换工具时,用户应注意以下几点: - **备份原始文件**:在进行大规模...

    批量文件转码工具,支持GBK,UTF-8转换,window下面使用,亲测可以使用!.zip

    UTF-8,全称“8位无类别 Unicode 转换格式”,是一种变长的Unicode编码,它可以表示Unicode字符集中所有的字符。UTF-8编码的最大优点是兼容ASCII码,即英文字符只占用一个字节,而大多数汉字则需要三个或四个字节。...

Global site tag (gtag.js) - Google Analytics