标题: [讨论]DOS下处理UNCODE文本的最大处理极限是什么?
[打印本页]
作者: nipo
时间: 2008-5-11 12:02
标题: [讨论]DOS下处理UNCODE文本的最大处理极限是什么?
用TYPE等方法可以读取,但无论如何不能保存。
既然能读取,就应该可以进行中间环节的处理。
是否DOS处理UNCODE文本的障碍主要在于不能保存为这种格式呢?
作者: nipo
时间: 2008-5-11 12:22
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 ]
作者: netwinxp
时间: 2008-5-11 12:59
问题在于Unicode一个字符恒定两个字节,原来的ASCII字符被多加了个ASC(00),并且还有大头和大尾之分,而这些附加特性刚好涉及到批处理的一些特殊字符,所以还需要附加个把Unicode转成ASCII和GB2312的小程序才好解决。
作者: nipo
时间: 2008-5-11 13:38
谢谢3楼朋友的解答,话不多,说得很透彻。
偶正在研究这个问题。如果能弄懂它,比走其它道路要快捷得多。
现在好象有点眉目了,还要看最后结果。
http://www.cn-dos.net/forum/view ... p;highlight=unicode
作者: netwinxp
时间: 2008-5-11 15:27
有一个很大的问题,GB2312与UniCode没有明显的映射规则,需要依靠一张表来完成转换。甚至更大的问题是UniCode里面有很多字符GB2312没有。
作者: slore
时间: 2008-5-11 15:55
VBS用流对象……
作者: netwinxp
时间: 2008-5-11 19:07
Quote: |
Originally posted by slore at 2008-5-11 15:55:
VBS用流对象…… |
|
VBS最终还是调用系统的转换功能,windows把unicode转成gb码也同样是用查表法。
作者: nipo
时间: 2008-5-11 21:55
TYPE命令可以读取UNCODE文本。试了一些文本,没发现有异常的显示。这是什么原理?
可否利用TYPE来进行中间的过渡处理?
作者: netwinxp
时间: 2008-5-12 11:31
是的,CMD的TYPE会把UNICODE的文本文件转成GBK输出(DOS的肯定不行),但GBK和GB2312是不同的,而DOS下通常使用的是GB2312(部分GBK字符无法显示)。
[
Last edited by netwinxp on 2008-5-12 at 11:36 AM ]
作者: nipo
时间: 2008-5-17 23:13
正在研究码表问题,看来不是个简单的事情。
[
Last edited by nipo on 2008-5-17 at 11:15 PM ]
作者: nipo
时间: 2008-5-17 23:15
又发现用find命令也可以导出UNICODE文本,并且可以很方便地选择性导出,例如:
find /v "TINTLPHR.EXE" a.txt>>b.txt
a.txt(UNICODE文本):
TINTLGD_.IMD
TINTLPHR.EXE
TINTSETP.EXE
TMIGRATE.DLL
且记录下来备考。
作者: netwinxp
时间: 2008-5-18 15:03
这些都只有在CMD才有效...
作者: nipo
时间: 2008-5-19 02:41
看得出来,netwinxp朋友对编码问题有很深的研究。钦佩!