为何在win32 console程序中不能输出汉字?各位高手请帮忙出谋划策 在一用vc写的console程序中,有一宽字符串(TCHAR)包含汉字信息,但用函数 wprintf输出时,在汉字出会中断显示,用wcstombs转换为char型字符串后用printf输出,结果一样,请各位高手指点,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接用char[]类型的字符串就可以了啊!用cout输出和printf都可以的! TO riverboat(诸葛不亮):我没说清楚!字符串本来是TCHAR[]型,这时包含汉字信息,跟踪发现向char[]转换时,汉字部分就丢失了 是不是在9X系统下?9X系统对中文字符的处理是采用MBCS的,即每个中文字可能要超过2字节表示,所以wprintf输出包含汉字信息的宽字符串在汉字会出错而中断显示。 这样没问题。WCHAR buf[1024];char* temp="你好,世界";mbstowcs(buf,temp,strlen(temp)+1);wprintf(L"%s\n",buf);但如果:WCHAR buf[]=L"你好,世界";就有问题,L对中文字的处理好象有问题,但是英文字就没问题。 如果你是unicode編譯環境應該不會有問題.WCHAR 就是對的.否則就要用 paul2002的方法先轉換..再輸出 ADO 操作ACCESS,保存日期时间字段时如何去掉上午下午 全局钩子 使用DirectSound采集声音,之后滤波该如何加入 计时计数问题,SetTimer,GetTickCount,请进来看看 树控件节点的选择问题 vc中用CRecordset时,如何直接定向到数据库文件,而不用弹出对话框然后然你选择数据文件 数据库添加记录问题 再问关于:windows socket的一个问题 线程里的互斥对象和操作系统的PV操作有相同吗? doc/xls/ppt --> png 怎么编程转换? 请问什么是DirectX Media 两个对话框之间如何传送数据?
用cout输出和printf都可以的!
9X系统对中文字符的处理是采用MBCS的,即每个中文字可能要超过2字节表示,所以wprintf输出包含汉字信息的宽字符串在汉字会出错而中断显示。
WCHAR buf[1024];
char* temp="你好,世界";
mbstowcs(buf,temp,strlen(temp)+1);
wprintf(L"%s\n",buf);
但如果:
WCHAR buf[]=L"你好,世界";
就有问题,L对中文字的处理好象有问题,但是英文字就没问题。
WCHAR 就是對的.
否則就要用 paul2002
的方法先轉換..再輸出