天天看點

DTK序列槽重定向(SOL)時中文顯示問題解決方法

近日有個需求,需要讓Intel AMT在做序列槽重定向的時候能夠很好的顯示中文。我記得Intel AMT SOL本身應該是支援UTF-8編碼格式,可以傳輸各種語言格式的字元,所立理論上來說,這個需求應該不是問題。拿最新版的Intel DTK(0.51x version)試了一下,用了一張Windows XP的安裝CD光牒測試。打開DTK的Intel IAmtTerm後,首先需要設定終端仿真方式,如下圖所示,修改為VT100/UTF-8,然後設定好相關IDER參數,選擇重新開機動到IDER的光驅。

<a href="http://softwareblogs-zho.intel.com/wordpress/wp-content/uploads/2008/05/sol-chinese-sel-utf8-01.PNG"></a>

    iAMT機器通過IDER從中文版XP安裝盤啟動後,發現中文顯示不正常,如下圖所示。看起來好像時每個中文字元被截去了半邊,并且擠在一堆,而裡面的英文字元卻都能顯示正常。

<a href="http://softwareblogs-zho.intel.com/wordpress/wp-content/uploads/2008/05/sol-with-erro-chinese-01.PNG"></a>

 打開Intel AMT Terminal工程的源代碼仔細檢查後,發現了問題所在:IAmtTerm是這樣顯示字元的,一個方框一個方框的顯示終端字元,方框的大小是根據使用者選 擇的字型大小來決定的,程式中是取樣字元'A'的大小,然後決定字元框的大小,然後在顯示的時候,把字元顯示在對應位置相應大小的字元框中;很顯然,問題 來了,我們知道中文的顯示一般是需要占到兩個英文字元大小寬度,是以上面出現的問題也就迎刃而解。 解決辦法:在顯示中文字元時候,把用來顯示字元的方框變為原來的兩倍大小即可;同時,為了達到和系統顯示一樣的效果,存儲輸出資料的數組中的所有中文字元 的下一個元素存儲的值将會被抛棄,在存儲的時候就需要間開。修改後的顯示中文的效果如下圖所示:

<a href="http://softwareblogs-zho.intel.com/wordpress/wp-content/uploads/2008/05/sol-with-right-chinese-01.PNG"></a>

    另外,如果你用SDK裡面的Putty來做SOL顯示的話,隻需要設定将起設定中的Window--&gt;Translation中的 "Received data assumed to be in which character set" 設定為 UTF-8 即可。

本文轉自Intel_ISN 51CTO部落格,原文連結:http://blog.51cto.com/intelisn/131461,如需轉載請自行聯系原作者