EM9160嵌入式主板是一款高性价比的ARM9工控主板,提供了丰富的通讯接口。由于该款主板没有支持彩色TFT液晶屏,因此在WinCE内核中没有对于中文的缺省支持,这样使得 eVC中提供的转换函数MultiByteToWideChar(…)对于中文字符无效。在EM9160如何来解决这个问题呢?
一种是可以利用Unicode转换算法,这种方法是需要通过程序来实现的,利用查表的方法来获取ASCII码、以及中文GB2312的Unicode编码,我们已做好了这部分的程序。
实际上在eVC下还可以采用更为简单的方法,就是直接通过eVC编译器来获取。在WinCE只支持Unicode编码的字符和字符串,在Unicode编码中,所有字符的存储都占有两个字节,在编程时,通过使用字符前缀“L”或者_T(“ ”)来创建一个Unicode字符或字符串。如:
TCHAR SrcString[100];
_tcscpy( SrcString, _T("中文转换测试123") );
然后再按照以下方法将其转换为char类型的数据。
int i1, i2, len;
char Dest[100];
len = wcslen(SrcString);
for( i1=0,i2=0; i1 <len; i1++ )
{
Dest[i2] = (char)(( SrcString [i1]> > 8)&0x00ff);
i2++;
Dest[i2] = (char)( SrcString [i1]&0x00ff);
i2++;
}
需要注意的是高位字节在前,低位在后。
[[URL=http://www.emtronix.com/更多相关文章[/URL]]