永发信息网

批处理批量替换txt内容指定文字,输出结果中文乱码问题,怎么解决。

答案:1  悬赏:0  手机版
解决时间 2021-02-02 22:20
我查了一下,好像说是编码问题,批处理默认输出ANSI编码,而我的txt文本是utf8编码的。执行替换后,文本被转成了ANSI,所以中文就乱码了。请教,以下代码该怎么修改?

附:
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b "*.txt"') do (
for /f "skip=2 delims=" %%a in ('find /v "%%" "%%i"') do (
set "word1=%%a"
set "word1=!word1:替换前=替换后!"
set "word2=!word1!"
echo,!word2! >>"%%~ni_tmp.txt"
)
del "%%i" /f /q
ren "%%~ni_tmp.txt" "%%i"
)
pause
最佳答案
@echo off
setlocal enabledelayedexpansion

for /f "delims=" %%i in ('dir /b "*.txt"') do (
    set aCode=UTF-8
    set bCode=GB2312
    call :CreatConvertTool
    ConvertTool.vbs "%%~i" "%%~i.ansi"
    for /f "skip=2 delims=" %%a in ('find /v "%%" "%%~i.ansi"') do (
        set "word1=%%a"
        set "word1=!word1:你好=替换后!"
        set "word2=!word1!"
        echo,!word2! >>"%%~ni.tmp"
    )
    del "%%~i" "%%~i.ansi" /f /q
    set aCode=GB2312
    set bCode=UTF-8
    call :CreatConvertTool
    ConvertTool.vbs "%%~ni.tmp" "%%~i"
    del "%%~ni.tmp" /f /q
)
pause
exit

:CreatConvertTool
(echo aCode = "%aCode%"
echo bCode = "%bCode%"
echo Set objArgs = WScript.Arguments
echo.
echo FileUrlSrc = objArgs^(0^)
echo FileUrlDst = objArgs^(1^)
echo Call WriteToFile^(FileUrlDst, ReadFile^(FileUrlSrc, aCode^), bCode^)
echo.
echo Function ReadFile^(FileUrlSrc, CharSet^)
echo     Dim Str
echo     Set stm = CreateObject^("Adodb.Stream"^)
echo     stm.Type = 2
echo     stm.mode = 3
echo     stm.charset = CharSet
echo     stm.Open
echo     stm.loadfromfile FileUrlSrc
echo     Str = stm.readtext
echo     stm.Close
echo     Set stm = Nothing
echo     ReadFile = Str
echo End Function
echo.
echo Function WriteToFile ^(FileUrlDst, Str, CharSet^)
echo     Set stm = CreateObject^("Adodb.Stream"^)
echo     stm.Type = 2
echo     stm.mode = 3
echo     stm.charset = CharSet
echo     stm.Open
echo     stm.WriteText Str
echo     stm.SaveToFile FileUrlDst, 2
echo     stm.flush
echo     stm.Close
echo     Set stm = Nothing
echo End Function)>ConvertTool.vbs
goto :eof
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
创美源专业美发沙龙地址好找么,我有些事要过
2x/0.3+2又2/3-(1.4-3x)/0.2=0 注意解方程
胃积食怎么办
超艺美容美发地址好找么,我有些事要过去
狂剪坊造型沙龙地址在什么地方,我要处理点事
明天 唐家湾站 到 小榄车站 轻轨票价 ?
lol新界面天赋符文在哪里的最新相关信息
下列哪项不符合G蛋白的特点A.又称鸟苷三磷酸
刘师傅发屋地址好找么,我有些事要过去
我写了几首古体诗,请问在网上哪里可以投稿赚
父母想要买一处新房,看了两个地方。请阅读以
华美专业美发室地址好找么,我有些事要过去
调节播放器亮度
小华看一本课外书,第一天看了全书页数的20%,
魏华美发地址在哪,我要去那里办事
推荐资讯
新天地艺术培训中心(玉林市玉州区)地址有知道
地摊四脚伞怎么撑图解配件
中国股票在外国上市是属于直接还是间接吸收外
无形胶粘在玻璃上怎么把它去掉
正规式(ab|c)(0|1|2)表示的正规集合中有多少
新思维英语(齐齐哈尔梅里斯)地址有知道的么?
高坪镇天宝农贸市场在哪里啊,我有事要去这个
MP3耳机完全查上好像就没有人唱歌的声音了,
华为,vivo,OPPO这三款价格在2500左右的手机
来力桌球会所在哪里啊,我有事要去这个地方
广汽丰田地址在什么地方,我要处理点事
m号是多大号?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?