Dosbox无法挂载含有特殊字符的路径
xsro opened this issue · 9 comments
Dosbox对特殊字符的支持效果比较差,本插件通过一些手段试图规避这个问题,但是有些地方仍然并不如意。
- Dosbox挂载的时候,无法挂载带有中文的路径地址,比如命令
mount d d:\文件夹无法工作 - Dosbox读写文件的时候,文件路径必须没有中文,比如命令
type 你好.txt就无法读取文件
我通过cmd将文件复制到插件安装 目录再使用的方式来规避【2】,但是如果插件的安装路径中有中文就无法顺利mount挂载,由于常常有使用特殊字符作为用户名的情况,这往往是致命的
目前我的大部分文件是和插件放在一起的,
- 这个位置通常为%USERPROFILE%.vscode\extensions(比如:
C:\Users\用户名\.vscode\extensions,当用户名有中文的时候这个路径就无法被dosbox访问), - 假如使用vscode提供的globalstorage(如
C:/Users/用户名/AppData/Roaming/Code/User/globalStorage/kaixa.masm-code/)也有这样的问题。
有没有什么好的方法解决这个问题
用户层面解决
- 假如vscode安装路径没有中文的话,可以在vscode安装位置文件夹下新建一个
data文件夹,vscode会把插件等内容存放在这里
代码层面解决
📖用gbk编码保存配置文件,或者使用dosbox参数传递命令。0.3.1中使用了后者,但是仍然有问题
我是**DOS联盟的站长,最近在做DOSBox-X软件开发,关于中文支持的问题有比较好的解决办法。DOSBox-X原本基于DOSBox,但后者主要是给DOS游戏设计的,而DOSBox-X则全面超越DOSBox,正式支持非游戏的DOS软件,且设计的主要对象之一就是DOS软件开发者,包括汇编语言。最新版本的DOSBox-X 0.83.14测试版全面支持中文路径及中文软件,当使用TTF输出模式时甚至不需要任何外挂中文系统(比如天汇之类)即可显示中文(但同时附带完美支持天汇等外挂中文系统),只需要把代码页设置为936(简体中文)或950(繁体中文)即可。我发个图片演示下在DOSBox-X下用TTF输出模式运行中文软件打开中文目录的效果:
其DOS命令行亦能够完全显示中文(甚至日文、韩文等,只需要用CHCP命令切换到相应代码页)文件和文件夹:
如果你想在Windows下测试,可以使用下面的执行文件,执行dosbox-x.exe后自动启动FoxBase+汉化版:
在DOSBox-X下运行FoxBase+汉化版的屏幕截图:
里面包含simkai.ttf楷体字体文件,需要的话可以换成别的中文字体文件,比如宋体、黑体等,并修改dosbox-x.conf中的ttf.font选项即可。你可以试试看,如果有什么建议可以告诉我,毕竟DOSBox-X正是设计给DOS软件用户及开发者使用的,而绝不仅仅是游戏。
顺便说一下,作为完整的DOS模拟器(而不像原本DOSBox那样侧重于游戏),DOSBox-X具有众多DOSBox所没有的功能,比如下拉式菜单、各种DOS命令、支持文档打印、剪切板复制粘贴、长文件名功能、大容量硬盘支持,等等。上面提到的TTF输出模式也是DOSBox-X独有的功能之一,特别适合于DOS命令行及非游戏的应用程序,详细可见DOSBox-X Wiki中的介绍:
https://dosbox-x.com/wiki/Guide%3AUsing-TrueType-font-output-in-DOSBox%E2%80%90X.html
❤️ 感谢你的建议,我会尝试使用dosbox-x,我目前还是大三学生,并且专业与这个关联不大,所以需要学习很多知识,时间上没有办法做保证,我会尽快。
如果你感兴趣,可以关注jsdos项目,这个是dosbox向网页端的移植,与VSCode兼容性会比较好,不过该项目目前似乎不太稳定。
@xsro 谢谢你的回复。提到大学,其实我自己也是大学时候和其他站长一起建立的**DOS联盟,为了支持DOS相关的发展,而且也是作为我自己的兴趣。最近几年主要在做DOS模拟器相关开发,包括之前的vDosPlus和现在的DOSBox-X,以完善DOS模拟器的功能,特别是对非游戏DOS软件提供全面支持。DOSBox-X是合作项目,它的开发进度比较快,每个月都会出新版本。你提到的JS-DOS我也试过,确实如你所说主要是给网页端而不是桌面环境使用的。由于它基于原本的DOSBox所以跟DOSBox一样仍然主要是给DOS游戏设计,非游戏的DOS软件只是有可能运行,说不上良好支持,同时都没有特别考虑到中文支持。这不怪JS-DOS本身,而是由于原本DOSBox的条件所限。希望DOSBox-X的完整DOS软件支持和全中文支持会给用户带来真正的方便,特别是桌面环境用户(DOSBox-X亦在一定程序上支持Emscripten)。
顺便一提,DOSBox的作者曾在其官方论坛中呼吁大家不要在DOSBox中运行非DOS游戏软件,因为它是主要给DOS游戏设计所以并不真正适合给非游戏DOS软件使用:https://www.vogons.org/viewtopic.php?f=31&t=27920
因为说到大学我想到那时的经历有些怀旧,所以又说了一些。关于这个没有关系的,等你以后对这个有兴趣而且有时间的时候我们可以再继续探讨。祝一切顺利,学业有成。
告诉你一声DOSBox-X 0.83.14已正式发布(更新说明在这儿:https://dosbox-x.com/release-0.83.14.html),简体中文语言文件(zh/zh_CN.lng )和日文语言文件(ja/ja_JP.lng )均已添加至版本库,故可以完整显示中文或日文界面(包括下拉菜单)。有时间的时候可以看看。



