中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-02 11:39
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [讨论]DOS下处理UNCODE文本的最大处理极限是什么? 查看 955 回复 12
楼 主 [讨论]DOS下处理UNCODE文本的最大处理极限是什么? 发表于 2008-05-11 12:02 ·  中国 辽宁 锦州 联通
中级用户
★★
积分 228
发帖 106
注册 2008-04-26 12:34
18年会员
UID 117003
性别 男
状态 离线
用TYPE等方法可以读取,但无论如何不能保存。

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

是否DOS处理UNCODE文本的障碍主要在于不能保存为这种格式呢?
2 发表于 2008-05-11 12:22 ·  中国 辽宁 锦州 联通
中级用户
★★
积分 228
发帖 106
注册 2008-04-26 12:34
18年会员
UID 117003
性别 男
状态 离线
3 发表于 2008-05-11 12:59 ·  中国 福建 厦门 电信
高级用户
★★★
积分 741
发帖 366
注册 2007-07-25 19:11
18年会员
UID 94024
性别 男
状态 离线
问题在于Unicode一个字符恒定两个字节,原来的ASCII字符被多加了个ASC(00),并且还有大头和大尾之分,而这些附加特性刚好涉及到批处理的一些特殊字符,所以还需要附加个把Unicode转成ASCII和GB2312的小程序才好解决。
4 发表于 2008-05-11 13:38 ·  中国 辽宁 锦州 联通
中级用户
★★
积分 228
发帖 106
注册 2008-04-26 12:34
18年会员
UID 117003
性别 男
状态 离线
谢谢3楼朋友的解答,话不多,说得很透彻。

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

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

http://www.cn-dos.net/forum/viewthread.php?tid=24079&fpage=1&highlight=unicode
5 发表于 2008-05-11 15:27 ·  中国 福建 厦门 电信
高级用户
★★★
积分 741
发帖 366
注册 2007-07-25 19:11
18年会员
UID 94024
性别 男
状态 离线
有一个很大的问题,GB2312与UniCode没有明显的映射规则,需要依靠一张表来完成转换。甚至更大的问题是UniCode里面有很多字符GB2312没有。
6 发表于 2008-05-11 15:55 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
VBS用流对象……
7 发表于 2008-05-11 19:07 ·  中国 福建 厦门 电信
高级用户
★★★
积分 741
发帖 366
注册 2007-07-25 19:11
18年会员
UID 94024
性别 男
状态 离线
Originally posted by slore at 2008-5-11 15:55:
VBS用流对象……

VBS最终还是调用系统的转换功能,windows把unicode转成gb码也同样是用查表法。
8 发表于 2008-05-11 21:55 ·  中国 辽宁 锦州 联通
中级用户
★★
积分 228
发帖 106
注册 2008-04-26 12:34
18年会员
UID 117003
性别 男
状态 离线
TYPE命令可以读取UNCODE文本。试了一些文本,没发现有异常的显示。这是什么原理?

可否利用TYPE来进行中间的过渡处理?
9 发表于 2008-05-12 11:31 ·  中国 福建 厦门 电信
高级用户
★★★
积分 741
发帖 366
注册 2007-07-25 19:11
18年会员
UID 94024
性别 男
状态 离线
是的,CMD的TYPE会把UNICODE的文本文件转成GBK输出(DOS的肯定不行),但GBK和GB2312是不同的,而DOS下通常使用的是GB2312(部分GBK字符无法显示)。

[ Last edited by netwinxp on 2008-5-12 at 11:36 AM ]
10 发表于 2008-05-17 23:13 ·  中国 辽宁 锦州 联通
中级用户
★★
积分 228
发帖 106
注册 2008-04-26 12:34
18年会员
UID 117003
性别 男
状态 离线
正在研究码表问题,看来不是个简单的事情。

[ Last edited by nipo on 2008-5-17 at 11:15 PM ]
11 发表于 2008-05-17 23:15 ·  中国 辽宁 锦州 联通
中级用户
★★
积分 228
发帖 106
注册 2008-04-26 12:34
18年会员
UID 117003
性别 男
状态 离线
又发现用find命令也可以导出UNICODE文本,并且可以很方便地选择性导出,例如:
find /v "TINTLPHR.EXE" a.txt>>b.txt

a.txt(UNICODE文本):

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

且记录下来备考。
12 发表于 2008-05-18 15:03 ·  中国 福建 厦门 电信
高级用户
★★★
积分 741
发帖 366
注册 2007-07-25 19:11
18年会员
UID 94024
性别 男
状态 离线
这些都只有在CMD才有效...
13 发表于 2008-05-19 02:41 ·  中国 辽宁 锦州 联通
中级用户
★★
积分 228
发帖 106
注册 2008-04-26 12:34
18年会员
UID 117003
性别 男
状态 离线
看得出来,netwinxp朋友对编码问题有很深的研究。钦佩!
论坛跳转: