egerrega 2023-05-09 13:51 采纳率: 50%
浏览 291
已结题

cmake项目中文乱码

一个cmake的项目系统,出现中文乱码
初学cmake,本来程序没有乱码,按教程下载扩展改成UTF-8编码,之后运行不知道怎么的中文就乱码了

img

以下是所作的更改

img

img

img

img


项目的属性如上图所示无法打开,改不了项目的属性

  • 写回答

5条回答 默认 最新

  • churuxu 2023-05-09 14:11
    关注

    别人的教程不见得就是正确的,建议自己理解清楚文件编码、控制台编码:

    【文件编码】
    ANSI(中文系统=GBK/GB2312)
    UTF8不带BOM
    UTF8带BOM

    【控制台编码】
    默认:ANSI
    chcp 65001 命令可设置控制台编码为UTF8
    SetConsoleOutputCP(65001) 可设置控制台编码为UTF8
    WriteConsoleW 以宽字符输出,无论控制台编码是啥,都能正常打印中文

    【编码转换】
    WideCharToMultiByte
    MultiByteToWideChar

    【正确做法】
    文件保存UTF8的,用MultiByteToWideChar转换,再用WriteConsoleW打印输出
    (可以封装一下函数,例如实现printf_utf8,然后#define printf printf_utf8,这样替换函数方便写代码)
    或着
    你自己理解清楚编码,让文件和打印输出保持一致的编码就行。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月11日
  • 创建了问题 5月9日

悬赏问题

  • ¥15 程序实在不会写,要秃了
  • ¥15 pycharm导入不了自己的包
  • ¥15 C#.net通过内网url地址获取文件并下载问题,浏览器postman可以正常下载,用程序不行
  • ¥15 本人本科机械,目前研一。没有深度学习基础,目前对研究生课题一片迷茫,请教各位!
  • ¥15 关于R语言单因素与多因素线性回归的平均值
  • ¥15 服务器清除BIOS之后引导不了
  • ¥15 CPLEX用OPL编写的混合整数线性优化问题。
  • ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
  • ¥15 前端预览docx文件,文件从后端传送过来。
  • ¥15 层次聚类和蛋白质相似度