Visual Studio 2019如何自动以IBM437/CP437编码打开指定文件
可行实现方案
下面分两种场景提供无全局侵入的解决方案,均无需修改系统注册表、无需切换文件编码格式:
方案1:自定义快捷键一键切换到CP437编码(适配你提到的Notepad++操作习惯)
操作步骤如下:
- 从Visual Studio内置扩展商店搜索安装Visual Commander扩展,支持VS2017及以上全版本
- 打开Visual Commander面板,新建C#类型命令,命名为「切换到CP437编码」,粘贴以下代码:
using EnvDTE; using System.Text; public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { if (DTE.ActiveDocument == null) return; string filePath = DTE.ActiveDocument.FullName; DTE.ActiveDocument.Close(vsSaveChanges.vsSaveChangesNo); DTE.ItemOperations.OpenFile(filePath, "{7651A703-06E5-11D1-8EBD-00A0C90F26EA}"); EnvDTE.TextDocument doc = (EnvDTE.TextDocument)DTE.ActiveDocument.Object("TextDocument"); doc.Encoding = Encoding.GetEncoding(437); } }
- 绑定快捷键:打开「工具→选项→环境→键盘」,搜索命令名
VCommand.切换到CP437编码,分配你习惯的Alt+X快捷键即可。
后续打开文件显示乱码时,按下快捷键即可一键切换为CP437编码显示。
方案2:绑定固定编码的默认打开方式(无需每次手动选代码页)
操作步骤如下:
- 在解决方案资源管理器中右键任意目标后缀文件(比如.cpp/.h),选择「打开方式→添加」
- 程序名输入你的Visual Studio安装路径下的
devenv.exe完整路径,末尾追加参数/command "File.OpenFile /e:437 \"%1\"",友好名称填「C++编辑器(固定CP437编码)」 - 选中新增的这个打开方式,点击「设为默认值」确认即可。
后续所有同后缀的文件双击打开时,会自动以CP437编码加载,无需手动选择代码页。如果需要适配多个文件后缀,对每个后缀重复上述操作即可。
注意:以上两种方案均仅作用于Visual Studio本身,不会修改系统全局配置、不会修改源文件编码格式,完全符合需求。
内容的提问来源于stack exchange,提问作者Thepassion
相关产品推荐
相关产品推荐

