一、在C/C++控制台应用程序中使用Unicode的方法
可能很多人都知道C/C++中Unicode字符串是wchar_t*,Unicode字符串常量是L"string",但是通常没办法在console中直接输出这些字符串,因为C/C++默认的设置是locale="C"(C区域),不支持Unicode字符串。
其实在C/C++中输出Unicode字符串很简单,只要重新设置一下区域,将区域设置为locale=""(当前区域)就可以了。不要混用C和C++输出,否则可能会导致失效。
C语言中的做法:<code class="lang-cpp">#include <locale.h>
#include <wchar.h>
int main()
{
// 应用环境Locale设置
setlocale(LC_CTYPE,setlocale(LC_ALL,""));
wprintf(L"万国码C语言\n");
return 0;
}</wchar.h></locale.h></code>
C++语言的做法:<code class="lang-cpp">#include <iostream>
#include <locale>
using namespace std;
int main()
{
// 应用环境Locale设置
wcout.imbue(locale(""));
wcin.imbue(locale(""));
wcerr.imbue(locale(""));
wcout<<l"万国码c++语言"<<endl; return 0; }< code></l"万国码c++语言"<<endl;></locale></iostream></code>
二、在MFC中使用Unicode的方法
如果是在Visual C++ 7.0以上版本,可以直接在『工程属性』中设置『使用Unicode字符集』还是『使用多字节字符集』。如果是使用Visual Studio 6.0的话,在stdafx.h里设置最方便。
在使用字符串常量时要套上_T("string")宏,使用字符类型TCHAR,字符串指针类型LPCTSTR,这样以保证代码在Unicode编译中的兼容性。要注意一旦使用了Unicode编译模式,程序便不再兼容Windows 95、Windows 98或Windows Me(这些操作系统已经在2006年停止支持,早已过时)。
Visual C++ 6.0中的做法:<code class="lang-cpp">// 在stdafx.h【最开始处】加入这几句
#undef _MBCS
#define _UNICODE
#define UNICODE
#pragma comment(linker, "/ENTRY:wWinMainCRTStartup")
// 在使用字符串时要在外边套上宏_T("string")
AfxMessageBox(_T("错误:文件不存在!"));</code>
(完)