【分享】Android Studio专用文件转换工具:把ANSI文件批量另存为无BOM的UTF-8文件

简介: 【分享】Android Studio专用文件转换工具:把ANSI文件批量另存为无BOM的UTF-8文件在Andoird Studio下编译java文件时,经常会出现像下面的错误:Error:(29, 43) 閿欒: 缂栫爜UTF-8鐨勪笉鍙...

【分享】Android Studio专用文件转换工具:把ANSI文件批量另存为无BOM的UTF-8文件


在Andoird Studio下编译java文件时,经常会出现像下面的错误:

Error:(29, 43) 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗?



在这里,分享一个工具:ANSI文件批量另存为无BOM的UTF-8文件:

把下面代码用记事本存为AndroidStudioJava编码.vbs,双击即可使用:

on error resume next 
Set WshShell=WScript.CreateObject("Shell.Application") 
dirPath=WshShell.BrowseForFolder(0, "请选择路径", 0, "").items().item().path 
if right(dirPath,1)<>"\" then dirPath=dirpath&"\" 
ma=inputbox("请输入要转换为的编码","","UTF-8") 
if ma="" or dirPath="\" or msgbox("在使用前请确认已备份文件夹"&dirPath,1)=2 then WScript.Quit 

'遍历文件夹下的文件 
Set FSO = CreateObject("scripting.filesystemobject") 
Set f = FSO.GetFolder(dirPath) 
Set fs = f.files 
For Each fileN in fs 
FN=dirPath&fileN.name&"" 
if ".java"=lcase(right(FN,5)) then Call WriteToFile2(FN, ReadFile(FN, "ANSI_X3.4-1986"), ma) 
Next 
Set FSO = Nothing 
wscript.echo "全部成功" 

'检测文件的编码 
Function CheckCode (FileUrl) 
Dim slz 
set slz = CreateObject("Adodb.Stream") 
slz.Type = 1 
slz.Mode = 3 
slz.Open 
slz.Position = 0 
slz.Loadfromfile FileUrl 
Bin=slz.read(2) 
if AscB(MidB(Bin,1,1))=&HEF and AscB(MidB(Bin,2,1))=&HBB Then 
Codes="UTF-8" 
elseif AscB(MidB(Bin,1,1))=&HFF and AscB(MidB(Bin,2,1))=&HFE Then 
Codes="Unicode" 
else 
Codes="ANSI" 
end if 
slz.Close 
set slz = Nothing 
'wscript.echo Codes
CheckCode=Codes 
End Function 

'以指定的编码读取文件 
Function ReadFile(FileUrl, CharSet) 
On Error Resume Next 
Dim Str 
Set stm = CreateObject("Adodb.Stream") 
stm.Type = 2 
stm.mode = 3 
stm.charset = CharSet 
stm.Open 
stm.loadfromfile FileUrl 
Str = stm.readtext 
stm.Close 
Set stm = Nothing 
'wscript.echo Str 
ReadFile = Str 
End Function 

'以指定的编码写文件 
Function WriteToFile (FileUrl, Str, CharSet) 
On Error Resume Next 
Set stm = CreateObject("Adodb.Stream") 
stm.Type = 2 
stm.mode = 3 
stm.charset = CharSet 
stm.Open 
stm.WriteText Str
stm.SaveToFile FileUrl, 2 
stm.flush 
stm.Close 
Set stm = Nothing 
End Function

Function WriteToFile2 (FileUrl, Str, CharSet) 
On Error Resume Next 
Set stm = CreateObject("Adodb.Stream") 
stm.Type = 2 
stm.mode = 3 
stm.charset = CharSet 
stm.Open 
stm.WriteText Str
stm.Position = 3
Set newStream = CreateObject("Adodb.Stream") 
newStream.mode = 3
newStream.Type = 1
newStream.Open()
stm.CopyTo(newStream)
newStream.SaveToFile FileUrl,2
stm.flush 
stm.Close 
Set stm = Nothing 
newStream.flush 
newStream.Close 
Set newStream = Nothing 
End Function



目录
相关文章
|
2天前
|
开发工具 Android开发 数据安全/隐私保护
探索iOS与安卓应用开发的异同:技术、工具和市场趋势
在移动操作系统的广阔舞台上,iOS和安卓两大主角各自演绎着怎样的精彩?本文将深入剖析这两大平台在应用开发过程中的技术差异、开发工具的选择以及面对的市场环境。通过数据支撑和案例分析,我们将一窥这两个系统如何影响开发者的决策,并探讨它们未来的发展方向。
|
10天前
|
监控 开发工具 Android开发
探索安卓与iOS开发的差异:平台特性、工具和市场趋势
在移动应用开发的广阔舞台上,安卓与iOS两大操作系统扮演着主角。它们各自拥有独特的平台特性、开发工具和市场定位,这些差异深刻影响着开发者的决策和产品的最终形态。本文将深入分析这两大平台的关键技术差异,探讨各自的开发环境和工具集,以及它们在市场上的表现和未来的趋势,为开发者提供一个全面的视角,帮助他们在这两个平台上做出更明智的开发选择。
|
1月前
|
存储 Linux 开发工具
Linux手动升级替换Android Studio
【6月更文挑战第22天】
|
1月前
|
Android开发
Android Studio(2022.3.1)设置阿里云源-新旧版本
Android Studio(2022.3.1)设置阿里云源-新旧版本
174 1
|
1月前
|
监控 Android开发 iOS开发
探索Android与iOS开发的差异:平台、工具和用户体验的比较
【6月更文挑战第25天】在移动应用开发的广阔天地中,Android和iOS两大平台各领风骚,它们在开发环境、工具选择及用户体验设计上展现出独特的风貌。本文将深入探讨这两个操作系统在技术实现、市场定位和用户交互方面的关键差异,旨在为开发者提供一个全景式的视图,帮助他们在面对项目决策时能够更加明智地选择适合自己项目需求的平台。
|
1月前
|
XML Java 开发工具
Android Studio开发Android TV
【6月更文挑战第19天】
|
14天前
|
Oracle Java 关系型数据库
Android studio 安装以及第一个程序
Android studio 安装以及第一个程序
26 0
|
24天前
|
Java Linux 开发工具
Windows环境下Android Studio v1.0安装教程
Windows环境下Android Studio v1.0安装教程
31 0
|
1月前
|
Java 开发工具 Android开发
详细解读Android开发DNK开发将.c文件打包成os
详细解读Android开发DNK开发将.c文件打包成os
13 0
|
1月前
|
Android开发
如何 将Android Studio升级至最新版(4.0)
如何 将Android Studio升级至最新版(4.0)
53 0