ANSI 和 Unicode
来源:互联网 发布:java getinstance 编辑:程序博客网 时间:2024/05/01 20:33
为什么使用Unicode?
可以很容易地在不同语言之间进行数据交换。
可以实现同一个二进制.exe文件或DLL文件支持多种语言。
可以提高应用程序的运行效率。Windows 2000是使用Unicode从头进行开发的,如果调用任何一个Windows函数并给它传递一个ANSI字符串,那么系统首先要将字符串转换成Unicode,然后将Unicode字符串传递给操作系统。如果希望函数返回ANSI字符串,系统就会首先将Unicode字符串转换成ANSI字符串,然后将结果返回给你的应用程序。进行这些字符串的转换需要占用系统的时间和内存。通过从头开始用Unicode来开发应用程序,就能够使你的应用程序更加有效地运行。
Windows CE 是使用Unicode的一种操作系统,完全不支持ANSI Windows函数。
Windows 98 只支持ANSI,只能为ANSI开发应用程序。
可以实现同一个二进制.exe文件或DLL文件支持多种语言。
可以提高应用程序的运行效率。Windows 2000是使用Unicode从头进行开发的,如果调用任何一个Windows函数并给它传递一个ANSI字符串,那么系统首先要将字符串转换成Unicode,然后将Unicode字符串传递给操作系统。如果希望函数返回ANSI字符串,系统就会首先将Unicode字符串转换成ANSI字符串,然后将结果返回给你的应用程序。进行这些字符串的转换需要占用系统的时间和内存。通过从头开始用Unicode来开发应用程序,就能够使你的应用程序更加有效地运行。
Windows CE 是使用Unicode的一种操作系统,完全不支持ANSI Windows函数。
Windows 98 只支持ANSI,只能为ANSI开发应用程序。
区分ANSI和Unicode函数
首先,函数的参数及其返回值的数据类型不同。如:
char *strcpy( char *strDestination, const char *strSource );
wchar_t *wcscpy(的 wchar_t *strDestination, const wchar_t *strSource );
unsigned char *_mbscpy( unsigned char *strDestination, const unsigned char *strSource );
wcscpy and _mbscpy are wide-character and multibyte-character versions of strcpy. The arguments and return value of wcscpy are wide-character strings; those of _mbscpy are multibyte-character strings. These three functions behave identically otherwise.
Windows定义的Unicode数据类型:
WCHAR Unicode字符,PWSTR 指向Unicode字符串的指针,PCWSTR 指向一个恒定的Unicode字符串的指针
对应的ANSI数据类型为CHAR,LPSTR和LPCSTR。
ANSI/Unicode通用数据类型为TCHAR,PTSTR,LPCTSTR。
其次,函数命名规则不同,如:
ANSI 操作函数以str开头 strcpy
Unicode 操作函数以wcs开头 wcscpy
MBCS 操作函数以_mbs开头 _mbscpy
所有新的和未过时的函数在Windows2000中都同时拥有ANSI和Unicode两个版本。ANSI版本函数结尾以A表示;Unicode版本函数结尾以W表示。Windows会如下定义:
#ifdef UNICODE
#define CreateWindowEx CreateWindowExW
#else
#define CreateWindowEx CreateWindowExA
#endif // !UNICODE
char *strcpy( char *strDestination, const char *strSource );
wchar_t *wcscpy(的 wchar_t *strDestination, const wchar_t *strSource );
unsigned char *_mbscpy( unsigned char *strDestination, const unsigned char *strSource );
wcscpy and _mbscpy are wide-character and multibyte-character versions of strcpy. The arguments and return value of wcscpy are wide-character strings; those of _mbscpy are multibyte-character strings. These three functions behave identically otherwise.
Windows定义的Unicode数据类型:
WCHAR Unicode字符,PWSTR 指向Unicode字符串的指针,PCWSTR 指向一个恒定的Unicode字符串的指针
对应的ANSI数据类型为CHAR,LPSTR和LPCSTR。
ANSI/Unicode通用数据类型为TCHAR,PTSTR,LPCTSTR。
其次,函数命名规则不同,如:
ANSI 操作函数以str开头 strcpy
Unicode 操作函数以wcs开头 wcscpy
MBCS 操作函数以_mbs开头 _mbscpy
所有新的和未过时的函数在Windows2000中都同时拥有ANSI和Unicode两个版本。ANSI版本函数结尾以A表示;Unicode版本函数结尾以W表示。Windows会如下定义:
#ifdef UNICODE
#define CreateWindowEx CreateWindowExW
#else
#define CreateWindowEx CreateWindowExA
#endif // !UNICODE
- UNICODE to ANSI 和 ANSI to UNICODE
- UNICODE 和 ANSI 互转
- ANSI和Unicode互转
- ANSI、ASCII和UNICODE
- ANSI 和 Unicode
- ANSI 和 UNICODE
- Unicode,Ansi和UTF8
- ANSI和UNICODE
- UNICODE和ANSI兼容性
- ANSI 和 UNICODE
- ANSI和UNICODE互转
- 关于ANSI和unicode
- Unicode和ANSI字符串
- ANSI和Unicode
- ANSI和UNICODE
- ANSI和Unicode字符集
- ANSI和Unicode
- 关于Ansi和Unicode
- C++与人工智能
- 你会用sizeof吗?
- 浅谈.NET下的多线程和并行计算(七)基于多线程的基本组件 (转)
- 一个用于返回所有存储过程及其参数的T-SQL
- 浅谈.NET下的多线程和并行计算(八)Winform中多线程编程基础上
- ANSI 和 Unicode
- 要考试了 微机原理
- android service
- WPF/Silverlight 控件的基本组成
- 应用程序测试经验漫谈(3)--兼容性
- 2009十大网络流行语 中英文对照读本 (搞笑)
- Eclipse插件开发引用外部包
- XP sp3 安装iis时找不到zClientm.exe的解决方法
- Silverlight 的 Border 控件