标题: [文本处理] 为什么批处理echo输出给乱码了? [打印本页]
作者: lj84831253 时间: 2010-4-26 22:08 标题: 为什么批处理echo输出给乱码了?
- @echo off
- setlocal enabledelayedexpansion
- wget "http://clubl.lexun.com/zone/onlineuser.aspx?cd=0&lxt=" -O 1.tmp
- grep "friUserid" 1.tmp > 2.tmp
- for /f "tokens=2 delims=>" %%a in (2.tmp) do (
- set b=%%a
- set b=!b:~0,-9!
- echo !b! >> name.txt
- )
复制代码
为什么我这样写输出后name.txt会乱码呀?谁能帮我解决下吗?
由于附件最大只能上传200KB的,所以wget.exe和grep.exe两个第三方我上传不了,麻烦没有的去第三方的版块下载。谢谢了!
作者: hanyeguxing 时间: 2010-4-26 22:11
因为文本是utf-8编码的。。。
for /f的时候使用type
[ 本帖最后由 hanyeguxing 于 2010-4-26 22:13 编辑 ]
作者: lj84831253 时间: 2010-4-27 07:19
原帖由 hanyeguxing 于 2010-4-26 22:11 发表
因为文本是utf-8编码的。。。
for /f的时候使用type
@echo off
setlocal enabledelayedexpansion
wget "http://clubl.lexun.com/zone/onlineuser.aspx?cd=0&lxt=" -O 1.tmp
grep "friUserid" 1.tmp > 2.tmp
for /f "tokens=2 delims=>" %%a in ('type 2.tmp') do (
set b=%%a
set b=!b:~0,-9!
echo !b! >> name.txt
)
我这样,为什么还是不行呢?
作者: lj84831253 时间: 2010-4-27 16:56
顶呀,,谁知道怎么解决?
作者: hanyeguxing 时间: 2010-4-27 17:06
楼主就不能把要处理的原始文本的相关信息和内容贴点或上传上来?
作者: lj84831253 时间: 2010-4-27 21:59
这个文件就是1.tmp呵呵,谢谢了。1.tmp就是通过wget下载下来的。
作者: lj84831253 时间: 2010-4-28 08:25
顶起来给大侠们看!
作者: lj84831253 时间: 2010-4-28 17:46
为什么,,还没人。。。知道肯定很多人都会。。为什么没人帮下呀,,
作者: hanyeguxing 时间: 2010-4-28 18:17
- @echo off
- wget "http://clubl.lexun.com/zone/onlineuser.aspx?cd=0&lxt=" -O 1.tmp
- grep "friUserid" 1.tmp>2.tmp
- chcp 437 >nul
- for /f "tokens=2 delims=>" %%a in (2.tmp) do (set b=%%a
- setlocal enabledelayedexpansion
- >>name.txt echo.!b:~0^,-9!
- Endlocal)
复制代码
[ 本帖最后由 hanyeguxing 于 2010-4-28 18:50 编辑 ]
作者: lj84831253 时间: 2010-4-28 22:28
chcp是第三方吗?如果不是的话,为什么我还是乱码呀。。。。
作者: lj84831253 时间: 2010-4-29 16:55
唉,,,等待,,
作者: GNU 时间: 2010-4-29 22:42 标题: 回复 10楼 的帖子
chcp是系统自带的命令,你亲自试试就知道了。
作者: lj84831253 时间: 2010-5-1 10:49
我亲试了,可是还是乱码。。。
作者: Spring 时间: 2010-5-1 13:53
下载的网页是 UTF-8 编码,而CMD只能识别ASCII和UNICODE(通常这么叫,全称是 unicode little-endian)编码,你需要转换成 UNICODE 编码。
没有测试,ConCMD.exe 是一个三方工具。- @echo off
- setlocal enabledelayedexpansion
- wget "http://clubl.lexun.com/zone/onlineuser.aspx?cd=0&lxt=" -O 1.tmp
- concmd /o:ule 1.tmp
- grep "friUserid" 1.tmp > 2.tmp
- for /f "tokens=2 delims=>" %%a in ('type 2.tmp') do (
- set b=%%a
- set b=!b:~0,-9!
- echo !b! >> name.txt
- )
复制代码
[ 本帖最后由 Spring 于 2010-5-1 14:06 编辑 ]
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |