Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dosbox无法挂载含有特殊字符的路径 #5

Open
xsro opened this issue Sep 30, 2020 · 9 comments
Open

Dosbox无法挂载含有特殊字符的路径 #5

xsro opened this issue Sep 30, 2020 · 9 comments
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@xsro
Copy link
Collaborator

xsro commented Sep 30, 2020

Dosbox对特殊字符的支持效果比较差,本插件通过一些手段试图规避这个问题,但是有些地方仍然并不如意。

  1. Dosbox挂载的时候,无法挂载带有中文的路径地址,比如命令mount d d:\文件夹无法工作
  2. 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中使用了后者,但是仍然有问题

@xsro xsro added bug Something isn't working help wanted Extra attention is needed labels Sep 30, 2020
@xsro xsro pinned this issue Oct 2, 2020
@xsro xsro closed this as completed in f2539e6 Oct 2, 2020
@xsro xsro unpinned this issue Oct 3, 2020
@xsro
Copy link
Collaborator Author

xsro commented Oct 3, 2020

oops 虽然支持了一些中文字符但是还是无法在特殊字符下使用,比如名为(✪ω✪)的文件夹就无法正常挂载,也无法显示
image

@xsro xsro reopened this Oct 3, 2020
@xsro xsro changed the title Dosbox对中文支持不行而引发的问题 Dosbox无法挂载含有特殊字符的路径 Oct 3, 2020
xsro added a commit that referenced this issue Nov 21, 2020
xsro added a commit that referenced this issue Nov 21, 2020
xsro added a commit that referenced this issue Nov 23, 2020
xsro added a commit that referenced this issue Nov 23, 2020
@xsro xsro closed this as completed Feb 13, 2021
@Wengier
Copy link

Wengier commented May 14, 2021

我是中国DOS联盟的站长,最近在做DOSBox-X软件开发,关于中文支持的问题有比较好的解决办法。DOSBox-X原本基于DOSBox,但后者主要是给DOS游戏设计的,而DOSBox-X则全面超越DOSBox,正式支持非游戏的DOS软件,且设计的主要对象之一就是DOS软件开发者,包括汇编语言。最新版本的DOSBox-X 0.83.14测试版全面支持中文路径及中文软件,当使用TTF输出模式时甚至不需要任何外挂中文系统(比如天汇之类)即可显示中文(但同时附带完美支持天汇等外挂中文系统),只需要把代码页设置为936(简体中文)或950(繁体中文)即可。我发个图片演示下在DOSBox-X下用TTF输出模式运行中文软件打开中文目录的效果:

image

其DOS命令行亦能够完全显示中文(甚至日文、韩文等,只需要用CHCP命令切换到相应代码页)文件和文件夹:

image

如果你想在Windows下测试,可以使用下面的执行文件,执行dosbox-x.exe后自动启动FoxBase+汉化版:

在DOSBox-X下运行FoxBase+汉化版的屏幕截图:

image

里面包含simkai.ttf楷体字体文件,需要的话可以换成别的中文字体文件,比如宋体、黑体等,并修改dosbox-x.conf中的ttf.font选项即可。你可以试试看,如果有什么建议可以告诉我,毕竟DOSBox-X正是设计给DOS软件用户及开发者使用的,而绝不仅仅是游戏。

@Wengier
Copy link

Wengier commented May 15, 2021

顺便说一下,作为完整的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

@xsro
Copy link
Collaborator Author

xsro commented May 15, 2021

❤️ 感谢你的建议,我会尝试使用dosbox-x,我目前还是大三学生,并且专业与这个关联不大,所以需要学习很多知识,时间上没有办法做保证,我会尽快。

如果你感兴趣,可以关注jsdos项目,这个是dosbox向网页端的移植,与VSCode兼容性会比较好,不过该项目目前似乎不太稳定。

@xsro xsro reopened this May 15, 2021
@Wengier
Copy link

Wengier commented May 15, 2021

@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

@Wengier
Copy link

Wengier commented May 16, 2021

因为说到大学我想到那时的经历有些怀旧,所以又说了一些。关于这个没有关系的,等你以后对这个有兴趣而且有时间的时候我们可以再继续探讨。祝一切顺利,学业有成。

@Wengier
Copy link

Wengier commented Jun 2, 2021

告诉你一声DOSBox-X 0.83.14已正式发布(更新说明在这儿:https://dosbox-x.com/release-0.83.14.html),简体中文语言文件(zh/zh_CN.lng )和日文语言文件(ja/ja_JP.lng )均已添加至版本库,故可以完整显示中文或日文界面(包括下拉菜单)。有时间的时候可以看看。

@xsro
Copy link
Collaborator Author

xsro commented Nov 1, 2021

你好,@Wengier
非常感谢您的反馈,我已经添加了使用DOSBox-X的支持。DOSBox-X对于显示中文很有帮助。

@Wengier
Copy link

Wengier commented Nov 1, 2021

@xsro 谢谢您的支持!顺便说下,关于输入中文,DOSBox-X支持用Windows/Linux自带的中文输入法(拼音、五笔等)输入中文,跟其它应用程序(比如记事本)中输入中文的方法是一样的。另外DOSBox-X 0.83.19版今天刚推出,跟往常一样有不少改进。如果您有什么问题可以随时和我联系。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants