Unicode

来源:互联网 发布:象棋打谱软件 编辑:程序博客网 时间:2024/06/05 23:01

        Unicode的全部字符都占用两个字节。

1.C运行库对Unicode的支持

      在string.h中定义了一个wchar_t类型代替char类型来支持Unicode字符串:

        typedef unsigned short wchar_t;

      在string.h中定义了一些以wcs开头的函数来支持Unicode,下面前面为ANSI C字符串函数,后面为Unicode函数:

char *strcat(char *,const char *);wchar_t *wcscat(wchar_t *,const wchar_t *);char *strchar(char *,const char *);wchar_t *wcschr(wchar_t *,const wchar_t *);char *strcmp(char *,const char *);wchar_t *wcscmp(wchar_t *,const wchar_t *);char *strlen(char *,const char *);wchar_t *wcslen(wchar_t *,const wchar_t *);

        可以运用头文件TChar.h建立单个源代码文件,使用特定的宏,通过判断是否定义了_UNICODE,来将这些宏扩展为ANSI版本的函数或UNICODE版本的函数。如果需要定义一个字符,使用TCHAR类型。如果定义了_UNICODE,那么THCAR声明为如下形式:

         typedef wchar_t TCHAR;

如果没有定义_UNICODE,那么TCHAR会声明为如下形式:

        typedef char TCHAR;

定义字符数组如下:

        TCHAR  szString[100];

 如果需要将字符串字面值定义为UNICODE,那么可以在字符串前加上大写字母L,例如:

        TCHAR *pt=L"mystring";

但是有时候,我们希望系统能够通过是否定义_UNICODE来智能的将字符串翻译为ANSI或UNICODE类型,那么可以使用宏_TEXT。如果定义了_UNICODE,那么宏定义形式如下:

         #define _TEXT(x) L ## x

如果没有定义_UNICODE,那么宏_TEXT定义如下形式:

        #define  _TEXT(x) x

因此,上面可改为:

        TCHAR *pt=_TEXT("mystring");

2.windows定义的UNICODE数据类型

        在windows中定义的UNICODE数据类型如下:

数据类型

说明

WCHAR

用于定义UNICODE字符

PWSTR

指向UNICODE字符串的指针

PCWST

指向一个恒定的UNICODE字符串的指针

       windows头文件中也定义了ANSI/UNICODE通用的数据类型PTSTR和PCTSTR,通过判断是否定义了UNICODE宏,来指定PTSTR和PCTSTR的字符集类型。注意这里UNICODE宏没有下划线。_UNICODE宏用于C运行期头文件,UNICODE宏用于windows头文件。

3.windows中的ANSI函数和UNICODE函数

        windows中的函数一般都有ANSI版本的函数和UNICODE版本的函数。ANSI版本版本的函数后面以A字母结束,如CreateWindowExA;UNICODE版本的函数以W结束,如CreateWindowExW。

        在windows中提供了一些字符串操作系统函数,如StrCat、StrChr、StrCmp、StrCpy等,这些函数都有ANSI和UNICODE版本的函数,如StrCatA何StrCatW,可以通过判断是否使用了UNICODE宏来具体这些函数。要使用这些函数,要包含头文件ShlWApi.h。

 4.windows字符串函数

函数说明CharLower转换成大写字符串CharUpper

转换成小写字符串

CharLowerBuff转换成大写字符串CharUpperBuff转换成小写字符串IsCharAlpha判断是否是字母IsCharAlphaNumeric判断是否是字母和数字IsCharLower判断是否死小写字母IsCharUpper判断是否是大写字母MutilByteToWideChar将多字节字符串转换成宽字符串WideCharToMutilByte将宽字符串转换成多字节字符串上面这些函数支持对UNICODE字符的操作。 

原创粉丝点击