中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何将txt文本文件的utf-8编码转换成unicode编码!!
« [1] [2] »
作者:
标题: [求助]如何将txt文本文件的utf-8编码转换成unicode编码!! 上一主题 | 下一主题
moonofwell
新手上路





积分 16
发帖 6
注册 2007-11-30
状态 离线
『楼 主』:  [求助]如何将txt文本文件的utf-8编码转换成unicode编码!!

如何将txt文本文件的utf-8编码转换成unicode编码!!

注:很多个文件,不能一个一个处理,得批量处理!!!
我想转换编码的目的是要用Excel直接打开txt文件,但是打开utf-8编码的文本会变成乱码,必须得转换成unicode编码的文本文件才行。可以用记事本打开文本文件,然后“另存为”时选择编码,但是文件太多,不能一个一个操作。看看哪个高手能解决这个问题!!!

2007-11-30 10:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 2 楼』:  


@echo off
for /f "delims=" %%a in ('dir /s /b /a-d D:\test\*.txt') do (
        call cmd /u /c type "%%a">"%%~dpna.U"
        call echo move /y "%%~dpna.U" "%%a"
)
pause




第一高手    第二高手

2007-11-30 11:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 3 楼』:  

好像批处理并不能直接处理utf-8编码的文本



2007-11-30 11:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
moonofwell
新手上路





积分 16
发帖 6
注册 2007-11-30
状态 离线
『第 4 楼』:  

不行啊,运行之后,产生了几个.u格式的文件,用记事本打开也都是乱码,不是我想要的结果欧!!!高手再看看!!!

2007-11-30 11:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 5 楼』:  

哦是吗我拿ANSI测试的



第一高手    第二高手

2007-11-30 11:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
moonofwell
新手上路





积分 16
发帖 6
注册 2007-11-30
状态 离线
『第 6 楼』:  

不行,编码要选择utf-8,我要转换的是utf-8到unicode。你用记事本随便写几句话,然后另存为,选择编码为:utf-f,保存
然后再运行你的程序,你看看吧。

[ Last edited by moonofwell on 2007-11-30 at 11:46 AM ]

2007-11-30 11:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 7 楼』:  

既然zh159批处理并不能直接处理utf-8也就没办法了,借助第三方工具吧



第一高手    第二高手

2007-11-30 12:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
moonofwell
新手上路





积分 16
发帖 6
注册 2007-11-30
状态 离线
『第 8 楼』:  

第三方工具我找到了,ConvertZ ver 7.40 ,如果能用dos批处理或vbs搞定就更好了!!!(*^_^*)

2007-11-30 12:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 9 楼』:  

UTF82Unicode.vbs
[code]
Set objArgs = WScript.Arguments
        For I = 0 To objArgs.Count - 1
            FileUrl = objArgs(I)
            Call WriteToFile(FileUrl, ReadFile(FileUrl, "UTF-8"), "Unicode")
        Next
Function ReadFile(FileUrl, CharSet)
    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
    ReadFile = Str
End Function

Function WriteToFile (FileUrl, Str, CharSet)
    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

2007-11-30 13:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 10 楼』:  

UTF82Unicode.vbs
Set objArgs = WScript.Arguments
        For I = 0 To objArgs.Count - 1
            FileUrl = objArgs(I)
            Call WriteToFile(FileUrl, ReadFile(FileUrl, "UTF-8"), "Unicode")
        Next
Function ReadFile(FileUrl, CharSet)
    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
    ReadFile = Str
End Function

Function WriteToFile (FileUrl, Str, CharSet)
    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

@echo off
for /f "delims=" %%a in ('dir /s /b /a-d D:\test\*.txt') do UTF82Unicode.vbs "%%a"
pause
直接替换模式,请先测试后应用



第一高手    第二高手

2007-11-30 13:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
moonofwell
新手上路





积分 16
发帖 6
注册 2007-11-30
状态 离线
『第 11 楼』:  

可以了,多谢了哥们儿,真是高手阿!!!

2007-11-30 13:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gameyixiu
初级用户





积分 47
发帖 18
注册 2007-9-8
状态 离线
『第 12 楼』:  

楼主是utf-8编码转换成unicode
而我的问题是:
如何将UTF-8转成ANSI
还有unicode如何转成ANSI

用批处理文件如何实现?
请高手解答

2007-12-7 17:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 13 楼』:  

命令行GB2312,UTF-8,Unicode,BIG5...编码转换工具VBS版
http://www.cn-dos.net/forum/view ... ge=1&highlight=

文本文件编码查询工具 QueryCode.vbs
http://www.cn-dos.net/forum/view ... ge=1&highlight=



第一高手    第二高手

2007-12-7 20:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gameyixiu
初级用户





积分 47
发帖 18
注册 2007-9-8
状态 离线
『第 14 楼』:  

谢谢楼上的

[ Last edited by gameyixiu on 2007-12-10 at 03:45 PM ]

2007-12-10 15:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
joson
新手上路





积分 2
发帖 1
注册 2008-5-18
状态 离线
『第 15 楼』:  

不错,学习中!

2008-5-18 22:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: