原创 通过EVC编译器获取Unicode 字符编码

2009-5-13 09:58 2015 2 2 分类: MCU/ 嵌入式

文章来源: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];
_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++;


}
需要注意的是高位字节在前,低位在后。


[相关文章]



 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
2
关闭 站长推荐上一条 /3 下一条