DOS+PC98模拟器DOSBox-X的中文语言支持功能图文详细说明


DOSBox-X(官方网站:https://www.dosbox-x.com/)是一个知名的DOS+PC98模拟器。它的代码原本基于DOSBox和DOSBox SVN Daum,但是经过多年发展有了很多独特的功能。其中,它对中文、日文等双字节语言的完善支持是一个较典型的例子,而原本DOSBox和DOSBox SVN Daum等其它分支尚不具备。下面就以最新的DOSBox-X 0.84.3 / 2022.09.0版为基础来对此功能进行介绍。

DOSBox-X对中日韩语言的支持比较深入,且表现在多个方面。由于中文用户以使用中文(简体中文或繁体中文)为主,本文将以DOSBox-X对中文的支持为主进行说明。DOSBox-X对日文等语言和系统支持(如932代码页、日文DOS/V、PC-98、JEGA、DCGA系统等)的说明可参见相关文章或其官方英文网站。

DOSBox-X对中文(简体或繁体)的支持包括中文界面显示(包括主菜单、DOS窗口、配置工具、按键编辑等)、完全解决DOS下中文路径和文件无法正常显示或访问的问题、允许显示/访问主机中的原始中英长文件和目录名、支持显示中文文件内容(例如中文文字DOS游戏攻略等,甚至Unicode格式的中文文件)、支持直接运行中文DOS程序(如CCED中文版、QB 4.5中文版等)而无需任何外挂系统、支持输入和打印中文而无需外挂组件、支持自定义中文字符集(如简体中文的GB2312/GBK字符集、繁体中文的Big5-1984/Big5-2003/Big5-HKSCS/Big5-UAO字符集)、支持更换中文显示字体(TTF/OTF或点阵字体)、支持动态切换代码页或中英文模式以及开启/禁用制表符自动识别、支持多种方式复制和粘贴中文文字等等。

与Windows系统类似,DOSBox-X专门提供了中文代码页(简体中文936或繁体中文950/951)来完善对中文的处理,包括对中文界面、中文路径及文件、中文文字内容、中文DOS程序、中文输入及打印等全方位支持,而其它代码页(如英文代码页)是无法完整支持中文功能的,所以推荐使用中文代码页。为了方便中文用户的使用,DOSBox-X的安装程序有有提供中文语言选项,包括简体中文(Simplified Chinese)和繁体中文(Traditional Chinese),见图:

(安装时选简体中文/Simplified Chinese)(安装时选繁体中文/Traditional Chinese)

安装时选中后运行DOSBox-X时将自动进入全中文(简体或繁体)界面,无需其它设置。中文语言选项在将界面设为中文的同时亦自动将代码页设为中文(简体中文936或繁体中文950),这样启动DOSBox-X后将直接支持如上所述的中文功能,无论是TTF输出还是其它输出方式下均如此(TTF输出下使用TTF/OTF字体,而其它输出方式下使用点阵字体)。用户将看到中文(简体或繁体)的菜单栏和欢迎界面,如图所示:

(简体中文TTF模式)(繁体中文TTF模式)
(简体中文非TTF模式)(繁体中文非TTF模式)

如果用户运行安装程序时未选择中文语言,也可以手工修改DOSBox-X所在文件夹下的dosbox-x.conf文件以设定中文代码页和界面语言。具体方法是,打开dosbox-x.conf文件,找到country = 一行将其改为country = 86,936(简体中文)或country = 886,950(繁体中文),如下图所示。再找到language = 一行将其改为language = zh_CN(简体中文)或language = zh_TW(繁体中文)。再启动DOSBox-X就会切换到中文代码页和界面语言。

(修改代码页为简体中文或繁体中文)(修改语言为简体中文或繁体中文)

此时不仅整个界面(包括DOS界面)将为中文,用户亦将能够看到并直接访问系统中的中文目录和文件名,就像访问英文目录和文件名那样。如果用户在安装程序选择报告的DOS版本时选择了7.10的话,DOSBox-X将开启长文件和目录名功能,这样DIR命令将同屏显示长短文件和目录名,其中短文件/目录名即标准8.3格式(8个字符主文件名加3个字符扩展名)的文件/目录名,而长文件/目录名也即Windows系统中的原始文件/目录名,这样用户将很容易看出短文件和目录名分别对应Windows系统中的哪些文件和目录名。其它DOS命令(如TYPE等)和文件名自动完成功能(按TAB键)亦可以同时操作于两者。如果用户没有在安装时选择7.10版本的话,可以打开DOSBox-X所在文件夹下的dosbox-x.conf文件,找到

ver = 
一行并将其改为

ver = 7.1
这样再次启动DOSBox-X时亦将启用长文件名支持。如图所示:

DOSBox-X在中文代码页下能够直接显示中文文件内容(Unicode或非Unicode),比如网上下载的中文游戏攻略、中文小说或其它文字,可以直接用TYPE或MORE命令查看GB/Big5编码的中文文件,无需任何第三方组件。简体中文代码页可以显示GB编码的文件,繁体中文代码页下可以显示Big5编码的文件。建议使用MORE命令来查看文件内容,比如“MORE 中文文件名.TXT”,以分屏显示文件内容,如下图所示的UCDOS98使用说明。如果是Unicode(UTF-8或UTF-16)格式的中文文件的话,可以分别用UTF8或UTF16命令来查看它们,比如

UTF8<UTF8中文文件.TXT | MORE
命令将分屏显示"UTF8中文文件.TXT"(假设该文件为UTF-8格式)中的内容,而

UTF16<UTF16中文文件.TXT | MORE
命令将分屏显示"UTF16中文文件.TXT"(假设该文件为UTF-16 LE或BE格式)中的内容。

DOSBox-X在中文代码页下亦能直接运行中文DOS程序并显示中文,而不需要另外挂载汉字系统(虽然亦可加载它们,如简体中文的天汇、CCDOS 97、PDOS和繁体中文的倚天、震汉、国乔等)。有些程序可能需要指定命令行参数以强制以中文显示,比如软景PC-Tools 2.01可以用/C参数来显示中文等。在简体中文代码页下运行简体中文DOS程序(如CCED 6.0简体中文版)、繁体中文代码页下运行繁体中文DOS程序(如QB 4.5繁体中文版)将能够正常运行并显示结果。如图所示:

(运行CCED 6.0简体中文版)(运行QB 4.5繁体中文版)
当然DOSBox-X不仅支持显示中文,亦可以输入和打印中文。在中文代码页下用户可以用Windows系统所支持的任何中文输入法(比如简体中文的拼音和五笔、繁体中文的注音和仓颉等)直接在DOSBox-X中输入中文,跟其它Windows程序(比如记事本)中输入中文是一样的。如图所示:

DOSBox-X允许用户在dosbox-x.conf文件中更改代码页和界面语言,亦允许运行时动态切换代码页和界面语言。举个例子用户有可能想先执行一个简体中文DOS程序,然后再执行一个繁体中文DOS程序,这样就需要不同的代码页以支持它们。切换代码页和界面语言均可以用CHCP命令进行,比如

CHCP 936
命令将切换到简体中文代码页936,而
CHCP 950
命令将切换到繁体中文代码页950。亦可以切换到其它语言代码页,如437为英文代码页、932为日文代码页等。不过以上这些命令仅切换代码页,而代码页如果和界面语言不匹配的话可能会造成乱码,所以用户很可能更希望同时切换两者,方法也很简单,对于已有的界面语言包括中文来说,在CHCP和代码页的后面加上一个冒号(:)即可,比如
CHCP 950:
命令将同时切换到繁体中文代码页和界面语言,这样就不会出现代码页和界面语言不匹配的现象,如下图所示。此操作亦可通过菜单进行,在“主菜单”中点“加载语言文件”,然后选择想要的语言文件(如简体中文为zh_CN.lng、繁体中文为zh_TW.lng、日文为ja_JP.lng、英文为en_US.lng等)即可。

DOSBox-X默认状态下与纯DOS下类似,简体中文代码页936下默认使用GB2312字符集,繁体中文代码页950下默认使用Big5-1984字符集。如果需要的话可以开启大字符集支持,比如简体中文代码页下可以使用GBK字符集、在dosbox-x.conf中找到

gbk = false
并将其改为
gbk = true
即可启用GBK字符集支持,这样的话如果系统中的中文文件或目录中有繁体字(或部分日文汉字)等亦可以正常显示,亦可以显示含GBK字集的文件内容。下图为用MORE命令分屏显示Windows 95所带的GBK.TXT文件:

如果用的是繁体中文代码页的话,可根据需要启用中国海字集、香港增补字符集或Unicode补完计画字符集支持,这些补充字集支持一些原本Big5-1984字集中不包含的字(比如堃、煊等)。启用中国海字集的方法是,在dosbox-x.conf中找到

chinasea = false
将其改为

chinasea = true
这样某些程序(比如汉书5.03版)将可以正确显示一些特殊符号,如下图所示:

如果想启用香港增补字符集Unicode补完计画则均需将代码页设为951,后者同时需将dosbox-x.conf中的uao = false改为uao = true后启动DOSBox-X即可生效(951代码页下)。这些操作均可在命令行下进行,例如config -set gbk=true命令将开启GBK字符集支持、config -set uao=true命令将开启Unicode补完计画字符集支持等。

DOSBox-X亦允许用户使用不同的字体来显示中文字符,而不光是默认的中文字体。如果是用的TTF输出(即output=ttf),默认是用的更纱黑体TTF字体(SarasaGothicFixed.ttf),用户亦可改用其它的TTF/TTC或OTF字体,比如楷体、黑体、宋体等,或者使用诸如华康系列的TTF/OTF字体(如下图分别使用华康POP字体和华康娃娃体在简体中文和繁体中文代码页下显示DIR命令的帮助信息)。在dosbox-x.conf中找到font = 选项进行设置即可,亦可在命令行下动态切换字体,比如

config -set font=simkai

命令将立即切换到楷体。如果是用的非TTF输出(比如direct3d或opengl类型的输出)的话,DOSBox-X默认从Windows系统中获取字体,或者使用自带的wqy_12pt.bdf(16点阵)、wqy_11pt.bdf(14点阵)中的字体,而用户亦可改用其它点阵字体,比如简体中文用户可在dosbox-x.conf的[dosv]栏中设置fontxdbcs = hzk16以使用UCDOS的HZK16点阵字体,而繁体中文用户可设置fontxdbcs = stdfont.15以使用倚天中文的STDFONT.15点阵字体,亦可使用bdf或pcf格式的点阵字体,只需将相应的点阵字体文件复制到DOSBox-X所在的文件夹下即可(或者在fontxdbcs选项中指定字体文件所在的完整路径加文件名)。

(华康POP字体)(华康华综体)

DOSBox-X的中文功能具有较强的制表符自动识别能力,以解决可能的制表符号显示问题。虽然它通常情况下不会有什么问题,但特殊情况下可将它关闭,方法是在dosbox-x.conf中找到autoboxdraw = true将其改为autoboxdraw = false。不过用户可能更希望在特定情况下将该功能动态开启或关闭, 在命令行下输入config -set autoboxdraw = false即可将制表符自动识别功能暂时关闭,再输入config -set autoboxdraw = true即可恢复。DOSBox-X亦支持中文DOS/V功能,不过和标准的中文DOS模式相比中文DOS/V模式与普通DOS程序的兼容性较差,所以不推荐使用(即保持dosbox-x.conf中设置dosv = off)。

DOSBox-X的文字复制和粘贴功能在中文代码页下亦支持中文字符的复制和粘贴,与英文模式下的英文字符复制和粘贴功能差不多,用户默认情况下可按住SHIFT键然后用鼠标右键来选择要复制的文字,放开鼠标右键后即复制成功。此时可将文字粘贴到其它Windows程序中。如果用户已在其它Windows程序中复制一段文字,切换回DOSBox-X后可在按住SHIFT键的同时按一下鼠标右键,复制的文字将粘贴到DOSBox-X窗口中。用户亦可通过CLIP$这样的特殊设备来实现文字的复制和粘贴,在确保“主菜单”中的“剪贴板功能”中的“启用 DOS 剪贴板设备存取”已选中的情况下(或在dosbox-x.conf中设置dos clipboard device enable = true开启),比如输入COPY/? >CLIP$命令会将COPY /?命令的执行显示结果复制到剪贴板中(CLIP$所代表的设备),用TYPE CLIP$命令即可将剪贴板中的内容显示出来,如图所示:

总之DOSBox-X以多种方式直接支持中日韩等东亚系语言,有很多可以发掘之处。大家也可以自己尝试。