DOS程序SOL中文输出经验

我们知道,DOS的输出是采用Console的输出的方式,默认情况下,我们只需要让iAMT客户机以SOL方式启动,就能自动在控制台的SOL终端显示和控制界面来显示远程客户机的DOS输出,以及直接输入控制命令来操作远程客户机的DOS系统,和本地操作DOS的效果是一样的。一般情况下,我们使用的DOS都是英文版本,如果需要输出中文,就需要安装中文环境,比如非常有名的UC-DOS。 安装这样的中文环境一般来说不是很方便,并且会增加DOS系统的所需的空间。那么,如何在没有DOS中文的的环境,通过SOL的方式,远程能显示中文呢?
理论上来说,是可行的,只需要终端控制台能识别中文编码。我们可以在Windows或其他中文环境下写好程序,输出时候使用中文,那么编译器编译好后的程序输出就是中文,通过SOL的串口传给远程控制台后,控制台能识别中文编码的话,就能自动识别和显示出来。
如果是用SDK里面的Putty来做SOL显示,那么只需要通过Setting里面选择相应的Character set就行。如果是用MDK的Commander和IAMTTerm,那么这里可能需要注意一点就是,默认情况下,iAMTTerm只支持两种编码:扩展的ANSCII和UTF-8。 如果你按上面方法写的程序,发现SOL控制台总是输出的中文是乱码,不管选择何种编码格式的话,那你需要检查一下你的源代码文件本身的编码格式了,其本身编码格式会导致编译器编译以后的二进制执行文件的输出也是相应的格式。为了保险起见,推荐使用UTF-8的编码方式,iAMTTerm和Putty都能很好的支持。您所需要做的是,使用功能比较强的编辑器,将您的源代码保存成UTF-8的编码格式后再编译。
如果使用UTF-8编码后,用iAMTTerm来显示SOL输出,发现中文输出不正常的话,可以参考我以前的一篇文章进行调整:/zh-cn/blogs/2008/05/28/dtksol
For more complete information about compiler optimizations, see our Optimization Notice.