共 1,393 篇文章
共 6,621 篇文章及评论
- Association for Computing Machinery TechNews (ACM)
- Go Parallel! (Dr. Dobbs)
- HPCwire (Tabor Communications, Inc.)
- insideHPC (John West)
- Joe Duffy's Weblog (Microsoft)
- Microsoft Parallel Programming Development Center (Microsoft Germany)
- MultiCoreInfo.com
- scalability.org (Scalable Informatics)
- Software Dev Blog (Intel Germany)
- Soft Talk Blog (Intel United Kingdom)
- The Moth (Microsoft)
DTK串口重定向(SOL)时中文显示问题解决方法
作者: 李铎锋--Duofeng Li (Intel) (84 篇文章) 日期: 五月 28, 2008 在 10:40 下午
近日有个需求,需要让Intel AMT在做串口重定向的时候能够很好的显示中文。我记得Intel AMT SOL本身应该是支持UTF-8编码格式,可以传输各种语言格式的字符,所立理论上来说,这个需求应该不是问题。拿最新版的Intel DTK(0.51x version)试了一下,用了一张Windows XP的安装光盘测试。打开DTK的Intel IAmtTerm后,首先需要设置终端仿真方式,如下图所示,修改为VT100/UTF-8,然后设置好相关IDER参数,选择重启动到IDER的光驱。
iAMT机器通过IDER从中文版XP安装盘启动后,发现中文显示不正常,如下图所示。看起来好像时每个中文字符被截去了半边,并且挤在一堆,而里面的英文字符却都能显示正常。
打开Intel AMT Terminal工程的源代码仔细检查后,发现了问题所在:IAmtTerm是这样显示字符的,一个方框一个方框的显示终端字符,方框的大小是根据用户选择的字体大小来决定的,程序中是取样字符'A'的大小,然后决定字符框的大小,然后在显示的时候,把字符显示在对应位置相应大小的字符框中;很显然,问题来了,我们知道中文的显示一般是需要占到两个英文字符大小宽度,所以上面出现的问题也就迎刃而解。 解决办法:在显示中文字符时候,把用来显示字符的方框变为原来的两倍大小即可;同时,为了达到和系统显示一样的效果,存储输出数据的数组中的所有中文字符的下一个元素存储的值将会被抛弃,在存储的时候就需要间开。修改后的显示中文的效果如下图所示:
这里是修改过的源代码,是Intel AMT Controls目录下的TerminalControl.cs,从这里下载terminalcontrol.zip,解压覆盖原来的就可。
另外,如果你用SDK里面的Putty来做SOL显示的话,只需要设置将起设置中的Window-->Translation中的 "Received data assumed to be in which character set" 设置为 UTF-8 即可。
分类: 可管理性
如需了解英特尔软件产品相关的性能和优化选项,请参阅优化注意事项.
评论 (3)
| 2008年11月11日 14:26
路人甲 | terminal 的characterset 處理沒哪麼困難, 是intel 白痴而已. |
| 2008年11月11日 14:37
李铎锋--Duofeng Li (Intel)
|
Intel是白痴的话,楼上的哪来的电脑在这里回帖呢? 这里的问题只是针对Intel的DTK的Commander工具的问题,软件实现上对中文支持的bug而已,如果用SDK里面的Putty 来作terminal,是没问题的。 |



英特尔® 软件网络博客 - 中文 » DOS程序SOL中文输出经验