中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-29 10:28
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 纯DOS下如何计算并键入汉字的内码以进入中文文件夹 查看 2,303 回复 16
楼 主 纯DOS下如何计算并键入汉字的内码以进入中文文件夹 发表于 2005-11-15 14:39 ·  中国 广东 肇庆 端州区 电信
初级用户
积分 22
发帖 10
注册 2005-11-15 13:56
20年会员
UID 45294
性别 男
状态 离线
请问,在纯DOS环境下,如何打开中文文件名的文件夹?(最好不用借助软件或建立批处理文件)

在纯DOS下,中文是不能显示的(显示得像乱码一样),我以前问过老师如何在纯DOS下进入“D:\操作系统”目录,他竟然将“操作系统”四个字 用笔算了出来了!结果是八组三位数(178、217、215、247、207、181、205、179),每两组数为一个字,在纯DOS下把“乱码”形式的“操作系统”四字打了出来(方法是按住“Alt”键再按小键盘的数字键再松开“Alt”键,一次为半个字,打了八次就打完了这四个字!)

我想问谁知道这八组数是怎样算出来的。


—————————————— willsort 版务记录 ——————————————
修改原标题:DOS问题请教。
原主题作者在通知发出三日后仍未申诉或修改,因此由版主修改并进行积分处罚
处罚包括:扣除因发表该主题而奖励的3点积分,扣除标题违规惩罚性1点积分
—————————————— willsort 版务记录 ——————————————


[ Last edited by willsort on 2005-11-30 at 13:27 ]
2 发表于 2005-11-15 16:15 ·  中国 上海 杨浦区 电信
高级用户
★★★
积分 916
发帖 377
注册 2004-03-08 00:00
22年会员
UID 19523
性别 男
状态 离线
真的哦,不知道用的是什么编码,最好算法简单点,真的很不错。

可惜上屏的仍然是乱码,只能在中文系统下显示
3 发表于 2005-11-15 16:43 ·  中国 山西 太原 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re king603:

DOS下的中文系统一般使用 GB2312 字符集国标编码,使用 GBK 或者 CJK 等大字符集的汉字系统的极少。而在 GB 码中,汉字分为一级汉字和二级汉字,一级按拼音顺序排列,二级按照笔画和笔画数排列。虽然有一定规律,但是实际计算时,必须对编码表有较强的记忆,一般不建议采用。

而在 DOS 下不使用汉字系统进入中文名目录(或者说打开开中文文件名的文件夹)早已有了许多方案,提供给你一个链接

老病新药:非中文环境下进入中文目录
http://www.cn-dos.net/forum/viewthread.php?tid=16819

当然,现有的方案都还无法完全做到,从许多中文名中辨认出某个具体中文名并进入,比如随机给出一个环境,包含许多同等长度的中文名目录,但不告知是哪些中文名,而只要求进入一个名为“目标目录”的目录,这是很难实现的。

[ Last edited by willsort on 2005-11-30 at 13:29 ]
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
4 发表于 2005-11-15 19:54 ·  中国 广东 广州 海珠区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
Originally posted by king603 at 2005-11-15 14:39:
我想问谁知道这八组数是怎样算出来的。


可以通过查询ASCII字符表来取得那些“乱码”的字符值。DN(DOS Navigator)和QB/QBasic的帮助文件都有ASCII表。至于怎么把中文字符的每个ASCII码值算出来,可以编一个小程序将ASCII字符转换为数值。

如果不借助任何工具的话,那只能靠死记硬背那些字符的ASCII码值咯 -_-
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
5 发表于 2005-11-15 20:25 ·  中国 上海 宝山区 电信
高级用户
★★★
积分 916
发帖 377
注册 2004-03-08 00:00
22年会员
UID 19523
性别 男
状态 离线
大家能举个换算例子吗

比如 系 这个字是怎么换的
6 发表于 2005-11-16 01:36 ·  中国 广东 肇庆 端州区 电信
初级用户
积分 22
发帖 10
注册 2005-11-15 13:56
20年会员
UID 45294
性别 男
状态 离线
对呀,最好能举几个例,让我们大家可以学习学习!
7 发表于 2005-11-16 21:42 ·  中国 广东 广州 海珠区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
以QB为例:
a$ = "系"
PRINT ASC(LEFT$(a$, 1)); ASC(RIGHT$(a$, 1))
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
8 发表于 2005-11-16 23:13 ·  中国 广东 肇庆 端州区 电信
初级用户
积分 22
发帖 10
注册 2005-11-15 13:56
20年会员
UID 45294
性别 男
状态 离线
如图:



这八组十进制数是不是有公式可以算出来的?
9 发表于 2005-11-17 19:17 ·  中国 广东 广州 海珠区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
每个字符是对应一个ASCII代码的,所以公式就是将ASCII字符转为代码。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
10 发表于 2005-11-17 19:34 ·  中国 广东 肇庆 电信
初级用户
积分 22
发帖 10
注册 2005-11-15 13:56
20年会员
UID 45294
性别 男
状态 离线
怎样转为代码?(步骤如何?)
请赐教...

谢!
11 发表于 2005-11-22 13:58 ·  中国 广东 肇庆 电信
初级用户
积分 22
发帖 10
注册 2005-11-15 13:56
20年会员
UID 45294
性别 男
状态 离线
无人知晓?
12 发表于 2005-11-22 19:53 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
13 发表于 2005-11-22 21:09 ·  中国 广东 肇庆 电信
初级用户
积分 22
发帖 10
注册 2005-11-15 13:56
20年会员
UID 45294
性别 男
状态 离线
好像有点关系哦!不过还是不太懂~~~~~~(我太笨~~?)

如:“操”=“178 217”中,若结果答案是“178 217”,那么,已知条件是不是除了“操”字外还有其它讯息作“已知条件”的?那些所谓隐含的“已知条件”又是什么呢?(我好像问得太深奥了~~~),还是,这个“178 217”这个结果答案只能用电脑算而根本不可能以人手算了来的?
14 晕,标题超长,白打了。 发表于 2005-11-23 14:19 ·  中国 江西 南昌 联通
初级用户
积分 24
发帖 8
注册 2005-11-23 12:22
20年会员
UID 45778
状态 离线
15 发表于 2005-11-23 14:24 ·  中国 江西 南昌 联通
初级用户
积分 24
发帖 8
注册 2005-11-23 12:22
20年会员
UID 45778
状态 离线
http://www.philosophyol.com/bbs/TopicOther.asp?t=5&BoardID=27&id=3394
请看上面的区位表,国家给每个汉字都规定了一个区位码:共2个数字,前为区,后为位(废话?)。你要算出想要的数字的话,先到表里找到一个字,比如“藏”,为18区,56位,再分别加上160,得到178,216就可以了,这其实是汉字的机内码。
论坛跳转: