• 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)

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

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

  • 相关阅读:
    从针对接口编程到依赖注入
    DataRow 数组转化成DataTable
    Math 类的方法概要
    .net控件
    字符串反转
    DataTable
    Enabled设置为False时,前景色和背景色也不改变的TextBox 并居中
    C# 四舍五入 (解决四舍六入五成双的问题)
    查询最后一条数据
    C# toString()
  • 原文地址:https://www.cnblogs.com/niuniu502/p/1392636.html
Copyright © 2020-2023  润新知