中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [讨论]DOS下处理UNCODE文本的最大处理极限是什么?
作者:
标题: [讨论]DOS下处理UNCODE文本的最大处理极限是什么? 上一主题 | 下一主题
nipo
中级用户





积分 228
发帖 106
注册 2008-4-26
状态 离线
『楼 主』:  [讨论]DOS下处理UNCODE文本的最大处理极限是什么?

用TYPE等方法可以读取,但无论如何不能保存。

既然能读取,就应该可以进行中间环节的处理。

是否DOS处理UNCODE文本的障碍主要在于不能保存为这种格式呢?

2008-5-11 12:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
nipo
中级用户





积分 228
发帖 106
注册 2008-4-26
状态 离线
『第 2 楼』:  

http://www.cn-dos.net/forum/view ... ghlight=&page=1

http://www.cn-dos.net/forum/post ... d=277914&page=1

[ Last edited by nipo on 2008-5-11 at 12:27 PM ]

2008-5-11 12:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 3 楼』:  

问题在于Unicode一个字符恒定两个字节,原来的ASCII字符被多加了个ASC(00),并且还有大头和大尾之分,而这些附加特性刚好涉及到批处理的一些特殊字符,所以还需要附加个把Unicode转成ASCII和GB2312的小程序才好解决。

2008-5-11 12:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
nipo
中级用户





积分 228
发帖 106
注册 2008-4-26
状态 离线
『第 4 楼』:  

谢谢3楼朋友的解答,话不多,说得很透彻。

偶正在研究这个问题。如果能弄懂它,比走其它道路要快捷得多。

现在好象有点眉目了,还要看最后结果。

http://www.cn-dos.net/forum/view ... p;highlight=unicode

2008-5-11 13:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 5 楼』:  

有一个很大的问题,GB2312与UniCode没有明显的映射规则,需要依靠一张表来完成转换。甚至更大的问题是UniCode里面有很多字符GB2312没有。

2008-5-11 15:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 6 楼』:  

VBS用流对象……

2008-5-11 15:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by slore at 2008-5-11 15:55:
VBS用流对象……

VBS最终还是调用系统的转换功能,windows把unicode转成gb码也同样是用查表法。

2008-5-11 19:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
nipo
中级用户





积分 228
发帖 106
注册 2008-4-26
状态 离线
『第 8 楼』:  

TYPE命令可以读取UNCODE文本。试了一些文本,没发现有异常的显示。这是什么原理?

可否利用TYPE来进行中间的过渡处理?

2008-5-11 21:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 9 楼』:  

是的,CMD的TYPE会把UNICODE的文本文件转成GBK输出(DOS的肯定不行),但GBK和GB2312是不同的,而DOS下通常使用的是GB2312(部分GBK字符无法显示)。

[ Last edited by netwinxp on 2008-5-12 at 11:36 AM ]

2008-5-12 11:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
nipo
中级用户





积分 228
发帖 106
注册 2008-4-26
状态 离线
『第 10 楼』:  

正在研究码表问题,看来不是个简单的事情。

[ Last edited by nipo on 2008-5-17 at 11:15 PM ]

2008-5-17 23:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
nipo
中级用户





积分 228
发帖 106
注册 2008-4-26
状态 离线
『第 11 楼』:  

又发现用find命令也可以导出UNICODE文本,并且可以很方便地选择性导出,例如:
find /v "TINTLPHR.EXE" a.txt>>b.txt

a.txt(UNICODE文本):

TINTLGD_.IMD
TINTLPHR.EXE
TINTSETP.EXE
TMIGRATE.DLL

且记录下来备考。

2008-5-17 23:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 12 楼』:  

这些都只有在CMD才有效...

2008-5-18 15:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
nipo
中级用户





积分 228
发帖 106
注册 2008-4-26
状态 离线
『第 13 楼』:  

看得出来,netwinxp朋友对编码问题有很深的研究。钦佩!

2008-5-19 02:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: