【分享】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开发 芯片 开发者
Android MediaTek bootloader 的序列号长度 & 移除非字母和数字限制 SN-Writer工具支持写入
Android MediaTek bootloader 的序列号长度 & 移除非字母和数字限制 SN-Writer工具支持写入
10 0
|
2月前
|
Android开发
安卓SO层开发 -- 编译指定平台的SO文件
安卓SO层开发 -- 编译指定平台的SO文件
32 0
|
3月前
|
人工智能 IDE 开发工具
Studio Bot - 让 AI 帮我写 Android 代码
Studio Bot - 让 AI 帮我写 Android 代码
160 1
|
2天前
|
存储 Java API
Android系统 文件访问权限笔记
Android系统 文件访问权限笔记
26 1
|
2天前
|
移动开发 Java Unix
Android系统 自动加载自定义JAR文件
Android系统 自动加载自定义JAR文件
15 1
|
2天前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
13 1
|
2天前
|
Android开发
Android源代码定制:添加customize.mk文件进行分项目和分客户的定制
Android源代码定制:添加customize.mk文件进行分项目和分客户的定制
2 0
|
20天前
|
Android开发 开发者
Android开发之OpenGL的画笔工具GL10
这篇文章简述了OpenGL通过GL10进行三维图形绘制,强调颜色取值范围为0.0到1.0,背景和画笔颜色设置方法;介绍了三维坐标系及与之相关的旋转、平移和缩放操作;最后探讨了坐标矩阵变换,包括设置绘图区域、调整镜头参数和改变观测方位。示例代码展示了如何使用这些方法创建简单的三维立方体。
17 1
Android开发之OpenGL的画笔工具GL10
|
26天前
|
Java Android开发
Android Studio的使用导入第三方Jar包
Android Studio的使用导入第三方Jar包
12 1
|
2月前
|
JSON Java Go