MFC中字符集(1)——支持 Unicode
来源:互联网 发布:沈阳哪里有mac专柜 编辑:程序博客网 时间:2024/06/08 16:19
转自:https://msdn.microsoft.com/zh-cn/library/2dax2h36(v=vs.110).aspx
Unicode是支持所有字符集(包括无法以单个字节表示的字符集)的规范。为国际市场编程时应考虑使用 Unicode或多字节字符集 (MBCS),或使程序能够通过更改开关来生成支持两种字符集之一的程序。
宽字符是双字节多语言字符代码。在当今的全球计算业内使用的大多数字符(包括技术符号和特殊的发布字符),都可以根据 Unicode规范表示为宽字符形式。无法以 1 个宽字符表示的字符可以通过 Unicode 的代理项功能以 Unicode 对表示。由于每个宽字符总是以固定的 16 位大小表示,因此使用宽字符可以简化使用国际字符集进行的编程。
宽字符字符串表示为一个 wchar_t[] 数组并由 wchar_t* 指针指向它。可以通过用字母 L 作为字符的前缀将任何 ASCII 字符表示为宽字符形式。例如,L'\0' 是终止宽(16 位)NULL 字符。同样,可以通过用字母 L 作为 ASCII 字符串的前缀(L"Hello") 将任何 ASCII 字符串表示为宽字符字符串形式。
通常,宽字符在内存中占用的空间比多字节字符多,但处理速度更快。另外,在多字节编码中一次只能表示一个区域设置,而世界上的所有字符集都同时以 Unicode表示形式表示。
除数据库类外,MFC 框架完全支持 Unicode。(ODBC 不支持Unicode。)MFC 通过始终使用可移植的宏来实现对Unicode 的支持,如下表所示:
MFC 中的可移植数据类型
不可移植的数据类型
由该宏替换
char
_TCHAR
char*, LPSTR(Win32数据类型)
LPTSTR
const char*, LPCSTR(Win32数据类型)
LPCTSTR
CString 类使用 _TCHAR 作为基,并提供构造函数和运算符以方便转换。可以通过使用与处理 Windows ANSI 字符集相同的逻辑来编写大多数 Unicode 的字符串操作(只是基本操作单位是 16 位字符,而非 8 位字节)。与使用多字节字符集 (MBCS) 不同,不必(也不应)将 Unicode 字符视为两个不同的字节。
- MFC中字符集(1)——支持 Unicode
- MFC中字符集(2)——Unicode 和多字节字符集 (MBCS) 支持
- MFC中字符集(3)——Unicode字符串的MFC支持及其在Visual Studio中的设置
- MFC Unicode 和多字节字符集 (MBCS) 支持
- 字符集之:如何(在程序中)加入并使用 Unicode 以实现外语支持
- 深入图解字符集与字符集编码(四)——Unicode
- MFC使用CFile读写Unicode字符集文件
- MFC使用CFile读写Unicode字符集文件
- Unicode字符集(转)
- unicode字符集的支持方式探究
- Unicode 和多字节字符集 (MBCS) 支持
- Unicode 和多字节字符集 (MBCS) 支持
- MFC中,Unicode和多字节字符集下 CString和char的转化
- MFC中,Unicode和多字节字符集下 CString和char的转化
- MFC中,Unicode和多字节字符集下 CString和char的转化
- Window中ASCII字符集,多字节字符集,UNICODE 字符集
- 认识字符集(ANSI、Unicode)
- 认识字符集(ANSI、Unicode)
- 【Thinking in Java笔记】Java环境变量CLASSPATH
- 使用源码gcc-4.8.2安装c++编译器C++11
- 初次学习PHP总结
- Laravel 5 中使用ckfinder的问题。config.php设置。
- lucene 建立CRUD操作
- MFC中字符集(1)——支持 Unicode
- 一般用户下执行sudo命令提示sunxi is not in the sudoers file. This incident will be reported
- 第十四周项目1(3)-小玩文件
- LeetCode Longest Palindromic Substring
- 20个需要掌握的代码命名小贴士
- 程矢axure夜话:Axure手机高保真原型素材偷盗篇
- 安装R语言的包方法
- 红黑树的插入
- QT编写的嵌入式工业控制系统