c语言怎么输出unicode字符,C/C++语言使用Unicode的方法

一、在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 &lt;locale.h&gt;

#include &lt;wchar.h&gt;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

int main()

{

&nbsp;&nbsp;&nbsp;&nbsp;// 应用环境Locale设置

&nbsp;&nbsp;&nbsp;&nbsp;setlocale(LC_CTYPE,setlocale(LC_ALL,""));

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;wprintf(L"万国码C语言\n");

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;return 0;

}&lt;/wchar.h&gt;&lt;/locale.h&gt;</code>

C++语言的做法:<code class="lang-cpp">#include &lt;iostream&gt;

#include &lt;locale&gt;

using namespace std;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

int main()

{

&nbsp;&nbsp;&nbsp;&nbsp;// 应用环境Locale设置

&nbsp;&nbsp;&nbsp;&nbsp;wcout.imbue(locale(""));

&nbsp;&nbsp;&nbsp;&nbsp;wcin.imbue(locale(""));

&nbsp;&nbsp;&nbsp;&nbsp;wcerr.imbue(locale(""));

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;wcout&lt;&lt;l"万国码c++语言"&lt;&lt;endl; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;return 0; }&lt; code&gt;&lt;/l"万国码c++语言"&lt;&lt;endl;&gt;&lt;/locale&gt;&lt;/iostream&gt;</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")

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

// 在使用字符串时要在外边套上宏_T("string")

AfxMessageBox(_T("错误:文件不存在!"));</code>

(完)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值