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

SSMS修改存储过程默认编码为UTF16-LE BOM,需自动设为UTF-8适配Git

如何将SSMS中修改后存储过程的默认保存编码设为UTF-8

问题背景

在SSMS中从对象资源管理器打开现有存储过程并修改后,默认以UTF16-LE BOM编码保存,而新建SQL文件默认使用UTF-8编码(由C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\SqlWorkbenchProjectItems\Sql\SQLFile.sql的编码决定)。Git会将UTF16-LE BOM编码文件识别为二进制文件,不符合版本控制规范,需将默认保存编码统一为UTF-8。

环境信息

  • Windows 10
  • SQL Server Management Studio v19.1.56.0
  • Microsoft SQL Server 2019 (RTM-CU23) (KB5030333) - 15.0.4335.1 (X64) Developer Edition

可行解决方案

方法1:通过SSMS选项直接修改默认编码

  1. 打开SSMS,点击顶部菜单的工具 -> 选项
  2. 在左侧导航栏依次展开:SQL Server对象资源管理器 -> 脚本
  3. 在右侧找到编码下拉选项,选择UTF-8
  4. 点击确定保存设置,重启SSMS生效

此设置会修改从数据库对象(存储过程、表等)打开并编辑后保存的默认编码,与新建SQL文件的UTF-8编码保持一致。

方法2:修改注册表强制设置默认编码

如果方法1中未找到对应选项,可通过注册表修改:

  1. 按下Win + R,输入regedit打开注册表编辑器
  2. 导航至路径:HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management Studio\19.0\Text Editor
  3. 找到DefaultEncoding DWORD值(若不存在则右键新建DWORD(32位)值,命名为DefaultEncoding)
  4. 将其值改为65001(UTF-8对应的代码页)
  5. 重启SSMS生效

补充:生成脚本时指定编码

若上述方法仍未生效,可使用SSMS的生成脚本功能导出存储过程:

  1. 在对象资源管理器中右键目标存储过程,选择编写存储过程脚本为 -> CREATE到 -> 文件
  2. 在保存对话框中,点击右下角的编码下拉菜单,选择UTF-8,保存文件
  3. 后续直接编辑该UTF-8编码的脚本文件,修改后保存默认会沿用UTF-8编码

说明

修改SQLFile.sql的编码仅对新建空白SQL文件生效,无法影响从数据库对象打开并编辑的脚本的默认保存编码,因此之前的尝试无法解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 15:25:08