You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2022中文版本注释出现invalid UTF-8提示的修复与来源排查求助

问题:中文注释出现“invalid UTF-8 in comment”提示的来源及修复方法

环境:Windows 11系统下的Visual Studio 2022中文版本,文件默认编码为GB2312。
代码中的中文注释及部分空白处出现“invalid UTF-8 in comment[clang-dianostic-invalid-utf8]”提示,代码可正常运行但不知如何修复,请问该提示来自VS本身还是Sonarlint、Resharper、CodeMind插件?

相关代码片段:

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
HDC hdc;
PAINTSTRUCT ps;
HFONT hFont, hFontOld;
static BOOL IsCalcStr = TRUE;           // 只在第一次WM_PAINT消息中计算s_iCol1、s_iCol2、s_iHeight
static int s_iCol1, s_iCol2, s_iHeight; // 第一列、第二列字符串的最大宽度,字符串高度
static int s_cxClient, s_cyClient;      // 客户区宽度、高度
static int s_iVscrollPos;               // 垂直滚动条当前位置
TCHAR szBuf[10];
int y;

switch (uMsg)
{
case WM_CREATE:
    // 设置垂直滚动条的范围和初始位置
    SetScrollRange(hwnd, SB_VERT, 0, NUMLINES - 1, FALSE);
    SetScrollPos(hwnd, SB_VERT, s_iVscrollPos, TRUE);
    return 0;
}

回答

这个提示来自Clang诊断工具,属于Visual Studio自带的C/C++代码分析组件(提示里的clang-dianostic-invalid-utf8明确标识了来源),和Sonarlint、Resharper、CodeMind这类第三方插件无关。

修复方案:

  • 方法一:转换文件编码为UTF-8(带BOM)。在VS顶部菜单点击「文件」→「高级保存选项」,编码选择「Unicode (UTF-8 带签名) - 代码页 65001」,保存后重新打开文件。
  • 方法二:全局关闭该诊断提示。打开项目属性→「C/C++」→「命令行」,在「附加选项」中添加-Wno-invalid-utf8。
  • 方法三:仅针对当前文件禁用提示。在代码开头添加编译指令:#pragma clang diagnostic ignored "-Winvalid-utf8"。

内容的提问来源于stack exchange,提问作者kingdelee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 12:33:15