文章来源:http://www.emtronix.com/blog/user14/Show.asp?/_articleid/12.html
最近我们有客户在英创的EM9160嵌入式主板上进行短信程序开发时,反映了中文短信发送的问题。实际上这其中的关键是在于获取中文字符的Unicode的编码,然后按照PDU的格式进行发送。
EM9160嵌入式主板是一款高性价比的ARM9工控主板,提供了丰富的通讯接口。由于该款主板没有支持彩色TFT液晶屏,因此在WinCE内核中没有对于中文的缺省支持,这样使得 eVC中提供的转换函数MultiByteToWideChar(…)对于中文字符无效。在EM9160如何来解决这个问题呢?
一种是可以利用Unicode转换算法,这种方法是需要通过程序来实现的,利用查表的方法来获取ASCII码、以及中文GB2312的Unicode编码,我们已做好了这部分的程序。
实际上在eVC下还可以采用更为简单的方法,就是直接通过eVC编译器来获取。在WinCE只支持Unicode编码的字符和字符串,在Unicode编码中,所有字符的存储都占有两个字节,在编程时,通过使用字符前缀“L”或者_T(“ ”)来创建一个Unicode字符或字符串。如:
TCHAR SrcString[100];Dest[i2] = (char)(( SrcString [i1]>>8)&0x00ff);
i2++;
Dest[i2] = (char)( SrcString [i1]&0x00ff);
i2++;
}
需要注意的是高位字节在前,低位在后。
[相关文章]
文章评论(0条评论)
登录后参与讨论