C 使用wprintf,_tprintf 打印简体中文的方法 【Locale.h】

{
char* paName = " 测试中";
        wchar_t* pwName = L" 测试中";
       
        printf(paName); // 输出为:测试中
        wprintf((wchar_t*)paName); // 输出为:空
      
        printf((char*)pwName); // 输出为:乱码
        wprintf(pwName); // 输出为:空
    }
    如果将程序改写如下,则输出的结果就不一样了
    {
char* paName = " 测试中";
        wchar_t* pwName = L" 测试中";
       
       setlocale(LC_ALL, "chs");
      
        printf(paName); // 输出为:测试
        wprintf((wchar_t*)paName); // 输出为:空
       
        printf((char*)pwName); // 输出为:乱码
        wprintf(pwName); // 输出为:测试
    }
    从上面两个代码片断可以看出:setlocale()对printf()没有影响,同时对char*的字符串也没有影响。唯一受到影响的是wprintf()这个函数了。我通过调试器查看了paName和pwName的字符,他们分别是:

       paName :b2e2 cad4 d6d0 …… 应该是CHS编码(也就是代码页936)

      -------------------

 

      以上是网上找到的解决方法

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值