美文网首页
解决 StringCchPrintfW 多字节转宽字符 中文乱码

解决 StringCchPrintfW 多字节转宽字符 中文乱码

作者: 星星之火666 | 来源:发表于2019-12-08 20:40 被阅读0次

第一部分

  • 问题代码:
#include <windows.h>
#include<strsafe.h>
#include<locale.h>

int main()
{
    wchar_t sz[200] = L"";

    // 设置 为 当前 操作系统 的 默认 地域设置
    //setlocale(LC_CTYPE, "");

    StringCchPrintfW(sz, _countof(sz), L"ANSI:%S\nUnicode:%s", "I am 中国人 I am very 骄傲", L"我是 Chinese\n");

    MessageBoxW(0, sz, 0, 0);

    return 0;
}
  • 结果如图所示:


    中文乱码

第二部分

  • 解决代码
#include <windows.h>
#include<strsafe.h>
#include<locale.h>

int main()
{
    wchar_t sz[200] = L"";

    // 设置 为 当前 操作系统 的 默认 地域设置
    setlocale(LC_CTYPE, "");

    StringCchPrintfW(sz, _countof(sz), L"ANSI:%S\nUnicode:%s", "I am 中国人 I am very 骄傲", L"我是 Chinese\n");

    MessageBoxW(0, sz, 0, 0);

    return 0;
}
  • 结果如图所示


    中文正常

第三部分

  • 如何解决的?
    添加代码:
    // 设置 为 当前 操作系统 的 默认 地域设置
    setlocale(LC_CTYPE, "");

相关文章

  • 解决 StringCchPrintfW 多字节转宽字符 中文乱码

    第一部分 问题代码: 结果如图所示:中文乱码 第二部分 解决代码 结果如图所示中文正常 第三部分 如何解决的?添加代码:

  • 标准C的一些操作

    宽字符转单字符wchar_t转char,中文不乱码的函数 inline char *UnicodeToAnsi(c...

  • Servlet与JSP进阶笔记(二)

    解决中文乱码 web应用的中文乱码 Tomcat默认使用字符集ISO-8859-1,属于西欧字符集 解决乱码的核心...

  • PHP mb_substr()获取部分字符串

    用途 获取部分字符串 解决截取中文防止乱码的问题 说明 根据字符数执行一个多字节安全的substr()操作。位置是...

  • mac下mysql5.6字符集设置

    为什么要设置字符集 设置字符集主要是解决乱码问题,由于中文和英文编码不同导致,中文出现乱码,所以一般都设置为utf...

  • 解决Spring MVC ResponseBody返回中文字符串

    解决Spring MVC ResponseBody返回中文字符串乱码问题 引起乱码原因为spring mvc使用的...

  • xml文档中文显示乱码问题

    1、xml文档中文显示乱码问题 文档里的中文字符,保存(编码)的时候以字节形式保存。解码需要查码表。windo...

  • win32中的宽字符

    win32中的宽字符 宽字符 宽字符: 用多个字节来表示的字符称之为宽字符(只要不是以单字节存储都可称为宽字符) ...

  • ubuntu中文乱码问题

    Ubuntu下zh_CN.UTF-8 locale找不到的问题ubuntu字符界面中文乱码 解决ubuntu的中文...

  • 技术杂项积累

    MySQL命令行向表中字段插入中文字符乱码问题,解决方法:

网友评论

      本文标题:解决 StringCchPrintfW 多字节转宽字符 中文乱码

      本文链接:https://www.haomeiwen.com/subject/bafvgctx.html