当前位置: 首页 > web >正文

Visual Studio 2022 中添加“高级保存选项”及解决编码问题

文章目录

  • 一、背景
  • 二、方法
    • 方法一:通过菜单栏手动添加(推荐)
    • 方法二:通过拖拽快速添加(替代方案)
  • 三、验证与使用
  • 四、补充说明
  • 五、所能解决的问题

一、背景

VS 在开发cmake项目的过程中,可能会遇到一些问题需要调整源代码文件保存的编码格式,如:

warning C4828: 文件包含在偏移 0x101 处开始的字符,该字符在当前源字符集中无效(代码页 65001)。

二、方法

方法一:通过菜单栏手动添加(推荐)

  1. 打开自定义设置
    依次点击顶部菜单栏:工具自定义命令,进入菜单配置界面。
    自定义工具栏
    命令

  2. 定位目标菜单
    在“自定义”窗口中:
    • 选择 菜单栏 下拉框 → 指定为 文件(即要将功能添加至“文件”菜单)。
    文件菜单

    • 点击右侧的 添加命令 按钮。
    命令

  3. 添加具体功能
    在弹出的对话框中:
    • 左侧“类别”选择 文件 → 右侧“命令”列表中找到 高级保存选项 → 点击 确定 完成添加。
    高级保存

  4. 调整位置(可选)
    添加后可通过 上移/下移 按钮调整该选项在“文件”菜单中的显示顺序。
    上移下移

方法二:通过拖拽快速添加(替代方案)

若希望更灵活地放置,可在“自定义”界面中直接拖拽 高级保存选项 到“文件”菜单的任意子菜单位置。


三、验证与使用

• 功能位置:添加成功后,打开任意文件,点击菜单栏的 文件 → 即可看到 高级保存选项。
高级保存

• 核心功能:通过该选项可设置文件编码(如UTF-8带/不带BOM)和换行符类型(CRLF/LF/CR),适合跨平台开发需求。
编码设置


四、补充说明

• 快捷键绑定(可选):如需快速调用,可前往 工具选项环境键盘,搜索动作名 File.AdvancedSaveOptions 并绑定快捷键。

• 兼容性提示:VS默认保存的UTF-8编码带BOM头,若需无BOM格式(如某些Qt项目),需手动选择 UTF-8 without signature

五、所能解决的问题

能解决代码文件编码问题造成的乱码,例如背景介绍所述:
字符集编码问题
示例代码:

#include <saucer/webview.hpp>int main()
{auto app = saucer::application::init({.id = "calendar",});saucer::webview webview{{.application = app,}};// 设置webview尺寸及标题webview.set_size(360, 600);webview.set_title("日历");// 指定页面文件webview.set_file("index.html");webview.show();app->run();return 0;
}

该代码本身并没有问题,但是,由于源代码编码(我的VS2022环境默认简体中文GB2312-代码页 936)导致当中的中文字符显示出问题,典型如webview.set_title函数中的中文。
中文乱码
修改编码方式为“Unicode (UTF-带签名) - 代码页 65001”,问题解决:
65001
修改编码后前述C++代码执行效果如下:
修正后

http://www.xdnf.cn/news/6719.html

相关文章:

  • WebMvcConfigurer介绍-笔记
  • GESP2025年3月认证C++二级( 第三部分编程题(2)时间跨越)
  • MongoDB 应用实战
  • 多尺度对比度调整
  • DDD领域驱动介绍
  • MODBUS RTU调试助手使用方法详解
  • 基于Mongodb的分布式文件存储实现
  • Java实现生产者-消费者模式:从基础到高级实践
  • MiniMax语音模型Speech-02近日登顶多个全球榜单,详细技术解析
  • 【Reality Capture 】02:Reality Capture1.5中文版软件设置与介绍
  • Lua中使用module时踩过的坑
  • 计算机指令分类和具体的表示的方式
  • 【Win32 API】 lstrcmpA()
  • Java内存泄露生产环境排查过程,通透了
  • 计算机网络 : Socket编程
  • EXCEL在一列数据前统一添加负号
  • 6种方式来探究数据集的的方法worldquant
  • STM32外设AD-定时器触发 + DMA读取模板
  • RKNN开发环境搭建(ubuntu22.04)
  • 网络世界的“百变身份“:动态IP让连接更自由
  • 解锁DeepSeek潜能:Docker+Ollama打造本地大模型部署新范式
  • 【Python 操作 MySQL 数据库】
  • maven和npm区别是什么
  • 几种排序方式的C语言实现(冒泡、选择、插入、希尔等)
  • 大数据技术的主要方向及其应用详解
  • 【问题排查】easyexcel日志打印Empty row!
  • DeepSearch代表工作
  • 时钟产生的公共模块示例
  • Java 泛型与类型擦除:为什么解析对象时能保留泛型信息?
  • 随笔:hhhhh