我在用ImGui写简单的页面时碰到了中文乱码的问题,为了解决问题,尝试了各种方法,如下是我的解决方法
事先声明
本文提供的解决中文乱码问题的方法
是基于DX11环境下的ImGui
使用的是微软雅黑字体
文件编码是UTF-8
u8前缀表示一个字符串字面量是以UTF-8编码的。当源代码中编写包含非ASCII字符(如中文、日文、韩文等多字节字符)的字符串时,或者即使字符串中不包含非ASCII字符但你希望明确指定其编码为UTF-8时,记得使用u8前缀。
一般加了u8前缀后,问题就解决了,如果还有问题可能是使用了不支持中文字体
ImGui的提供的默认字体可能不支持中文
要如何更改ImGui的字体呢
一般我们可以在Imgui项目 例如DX11项目
提供的main.cpp示例里的//Load Fonts下面
找到这两行
将其注释取消或者在自己引入Imgui的main文件里加入这两行
AddFontFromFileTTF
的第一个参数,一般为对应字体所在位置
大多字体库位于C:\Windows\Fonts
右键属性打开某个字体的属性面板,这里以微软雅黑为例
可以看到msyh.ttc就是该字体的名字
确保你的源代码文件(如.cpp
、.h
等)保存为支持中文的编码格式,我提供的解决方法是面向UTF-8文件编码的。在大多数代码编辑器中,你可以设置或转换文件的编码格式。
以下提供一种VS编译器中编码的快捷切换方式
在VS中的扩展->管理扩展中搜索插件FileEncoding下载安装便可以轻快的切换文件编码
综上就是我的解决办法了😋
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。