前几天遇到车上歌词乱码问题。查了一下,可能是lrc歌词文件编码的问题。
查看了一下源文件的编码是带BOM的UTF-8模式,可能是需要转换成ANSI编码。于是手动的用记事本打开了一个然后另存为ANSI编码,结果乱码问题解决。
可是几千首这样一个一个改,不现实。于是找了很多软件,发现批量处理都很麻烦,甚至是无法批量处理。最后就写了一个批处理文件,轻松搞定。
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
set "total=0"
set "success=0"
set "fail=0"
echo 正在扫描.lrc文件并进行转码...
for /r %%a in (*.lrc) do (
set /a total+=1
echo [!total!] 正在处理:"%%a"
powershell -Command "$content=Get-Content '%%a' -Encoding UTF8 -ErrorAction Stop; $content | Out-File '%%a' -Encoding Default -ErrorAction Stop"
if !errorlevel! equ 0 (
echo ★★转换成功★★: %%a
set /a success+=1
) else (
echo 转换失败: %%a
set /a fail+=1
)
)
echo ==========统计结果==========
echo 总文件数 : %total%
echo 转换成功数 : %success%
echo 转换失败数 : %fail%
echo ===========================
pause
想使用的小伙伴,可以把上述代码复制到记事本里面,然后另存为bat就可以了。