梦中江湖

世间一切皆为江湖,世间一切皆不为江湖。曾经年少,觉得一切皆是那么美好,世间事物一切皆可为我所有,天下之大皆我可往。有一种江湖的情结,豪情满胸。可是时间的流逝,年龄的增长,心中的江湖已经不在,现在江湖泛滥,唯有小酌入梦后,才能在梦中再见我的江湖!再见我的青春!

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  12 随笔 :: 0 文章 :: 15 评论 :: 0 Trackbacks

Unicode的出现是为了适应软件国际化的需要。Unicode不同于双字节字符集(DBCS)。
一、相关操作函数
1、DBCS使用下面的函数操作字符串:
CharNext——获得后一个字符
CharPrev——获得前一个字符
IsDBCSLeadByte——判断是否为两个字节字符的第一个字节
C++运行期库提供了以"_mbs"开头的一系列的函数操作DBCS。类似的函数有_mbscat等。

2、ANSI字符集是一个美国标准。C++运行期库提供了以"str"开头的一些列的函数操作此字符集。

3、C++运行期库为Unicode字符集提供了一系列以"wcs"开头的函数。

二、对应的数据类型
1、对于ANSI字符定义为char。
2、对于Unicode的字符定义为wchar_t。

三、使用环境
1、首先要说明的是Win98对于Unicode的支持是很微弱的,所以如果要在Win98上运行Unicode编译的程序,可能造成运行错误或者失败。

2、由于Win2000及以后的OS的内核都是使用Unicode编写的,所以虽然可以在其上运行ANSI编码的程序,但是其运行过程中很多地方都需要将ANSI转换为Unicode以后,调用Unicode版本的函数,因为这个转换的过程存在所以ANSI的程序运行效率不高。在Win2000上最好使用Unicode编写程序。

四、编写通用的程序
1、在编程的时候使用TCHAR数据类型,此类型能够根据预编译宏的定义,将其转换为ANSI或者是Unicode。

2、预编译宏_MBCS、_UNICODE和UNICODE。_MBCS是多字节和ANSI字符串的编译宏。此时TCHAR将转换为char。_UNICODE和UNICODE是Unicode编码的预编译宏,TCHAR将转换为wchar_t。

3、_UNICODE和UNICODE与_MBCS不能在编译的时候同时被定义。

4、_UNICODE宏用于C运行期库的头文件,UNICODE宏用于Windows头文件。一般同时定义这两个宏。

五、转换函数
1、Unicode转换为ANSI使用:MultiByteToWideChar。
2、ANSI转换为Unicode使用:WideCharToMultiByte。

posted on 2005-06-20 09:06 梦中江湖 阅读(1344) 评论(1)  编辑 收藏 引用

评论

# re: 也说Unicode 2009-02-24 17:51 guest
五、转换函数
1、Unicode转换为ANSI使用:MultiByteToWideChar。
2、ANSI转换为Unicode使用:WideCharToMultiByte。

写反了吧,呵呵  回复  更多评论
  

只有注册用户登录后才能发表评论。