准备把服务器端的程序采用UNICODE 来编写
编译ACE的时候,我增加了
#define ACE_HAS_WCHAR
#define ACE_USE_WCHAR
编写一个Hello world的小程序,结果运行发现在控制台上显示不出中文,很快发现在原来需要设置console的属性才能让UNICODE字符正常显示出来。
代码如下
include "stdafx.h"
#include "ace/os.h"
#include "ace/Log_Msg.h"
#include <mmsystem.h>
#include <locale.h >
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"CHS"); //****** 设置本地属性*********
#include "ace/os.h"
#include "ace/Log_Msg.h"
#include <mmsystem.h>
#include <locale.h >
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"CHS"); //****** 设置本地属性*********
for(int i = 0; i < 100; i++)
{
int cur = ACE_OS::gettimeofday().msec();
_tprintf(ACE_TEXT("Hello world,今天您UNICODE了吗? [%d]/n"),cur);
OutputDebugStr(ACE_TEXT("Hello world,今天您UNICODE了吗?/n"));
ACE_DEBUG((LM_INFO,ACE_TEXT("Hello ACE,今天您UNICODE了吗?/n")));
ACE_OS::sleep(1);
}
return 0;
}
{
int cur = ACE_OS::gettimeofday().msec();
_tprintf(ACE_TEXT("Hello world,今天您UNICODE了吗? [%d]/n"),cur);
OutputDebugStr(ACE_TEXT("Hello world,今天您UNICODE了吗?/n"));
ACE_DEBUG((LM_INFO,ACE_TEXT("Hello ACE,今天您UNICODE了吗?/n")));
ACE_OS::sleep(1);
}
return 0;
}

本文介绍了一种使用Unicode编码在Windows控制台显示中文的方法。通过设置本地属性并编译时加入特定宏定义,实现了在控制台上正确显示Unicode字符的目标。此外,还提供了一个示例程序代码,展示了如何在实际应用中实现这一功能。
1万+





