导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→通过EVC编译器获取Unicode 字符编码--成都英创博客[emtronix]

 *第21163篇: 通过EVC编译器获取Unicode 字符编码--成都英创博客[转帖]

  
楼 主:emtronix 2009年5月22日10:20
 通过EVC编译器获取Unicode 字符编码--成都英创博客[转帖]
文章来源:
    最近我们有客户在英创的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++;

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

[[URL=http://www.emtronix.com/更多相关文章[/URL]]


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:零基础学单片机视频教程——02讲  并行端口仿真实例

[下一篇主题]:AMP连接器,TYCO连接器专业代理