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
相关产品推荐
相关产品推荐

