0

0

Sublime怎么设置默认编码_Sublime UTF-8设置教程【通用】

尼克

尼克

发布时间:2026-03-05 13:30:04

|

613人浏览过

|

来源于php中文网

原创

sublime text 编码问题核心在于区分新建、打开、保存三阶段:default_encoding已弃用;default_encoding_on_save控制保存编码;fallback_encoding决定无bom文件的打开解析;状态栏显示仅为当前解码方式,不改变文件实际编码。

sublime怎么设置默认编码_sublime utf-8设置教程【通用】

新建文件默认编码不是靠 default_encoding 就能搞定的

Sublime Text 新建空白文件时,界面显示为 UTF-8,但这个“显示”不等于“已写入 BOM”或“已绑定保存行为”。default_encoding 确实控制新建文件的初始编码标识,但它在 Sublime 中早已被弱化——官方明确标注为“已弃用”,实际生效依赖上下文。你改了它,新建文件右下角可能还是显示 UTF-8,但一保存,如果内容为空或没触发编码确认流程,它根本不会写入任何字节,更不会带 BOM。

真正起作用的是:default_encoding_on_save(仅影响保存动作)和 fallback_encoding(决定打开未知文件时怎么猜)。所以别只盯着 default_encoding 配,它现在更多是个兼容占位符。

  • default_encoding_on_save 设为 "UTF-8":确保按 Ctrl+S 时默认走 UTF-8 编码写入
  • fallback_encoding 设为 "UTF-8":让 Sublime 打开无 BOM、无声明的旧文件时,优先用 UTF-8 解析,而不是误判成 Western (Windows 1252) 或 GBK 导致满屏方块
  • 不要设 "UTF-8 with BOM":Sublime 不识别这个字符串,会静默失效或回退到系统 locale

打开旧文件乱码?不是设置错了,是解码逻辑没对上

你在 Windows 上双击一个记事本存的中文 .txt,打开全是 ,这不是因为你没设对 default_encoding,而是 Sublime 拿 fallback_encoding 去读了一个实际是 GBK 的文件——它把两个 GBK 字节当做一个 UTF-8 字符解,自然崩坏。

此时点右下角状态栏的编码名(比如点一下 UTF-8),只是让 Sublime “重解析当前内存内容”,不改磁盘字节,也不转码。你越点越乱,因为每次都是拿错的规则再解一遍错的字节。

  • 正确做法:菜单栏 File → Reopen with Encoding → Chinese (GBK)(或 GBK),先让内容正常显示
  • 确认无误后,再执行 File → Save with Encoding → UTF-8,这才真正把 GBK 字节转成 UTF-8 字节写回磁盘
  • 若频繁处理这类文件,建议安装 ConvertToUTF8 插件,它会在打开时自动识别 GBK 并转为 UTF-8 显示,但注意:它默认保存仍回 GBK,如需统一存 UTF-8,得进插件配置关掉 save_to_original_encoding

convert_to_utf8_on_save 是假选项,原生 Sublime 不支持自动转码保存

网上很多教程让你在用户设置里加 "convert_to_utf8_on_save": true,这行配置 Sublime 原生根本不认——它不是内置键名,属于某些插件(如老版 ConvertToUTF8)的私有字段。加了不仅无效,还可能导致配置解析失败(JSON 格式错误)。

Designs.ai
Designs.ai

AI设计工具

下载

Sublime 的保存行为永远基于当前文件“当前使用的编码”:如果你用 Reopen with Encoding → GBK 打开了文件,那 Ctrl+S 默认就以 GBK 保存;只有你手动执行过 Set Encoding → UTF-8,它才会以 UTF-8 保存。不存在“后台偷偷转码”这回事。

  • 想强制某类文件总用 UTF-8 保存?装 File Encoding Manager 插件,可按扩展名绑定默认保存编码(例如所有 .py 文件自动设为 UTF-8)
  • 想一键批量转项目里所有 GBK 文件?别指望 Sublime 内置功能,用命令行:iconv -f GBK -t UTF-8 file.txt -o file_utf8.txt
  • 插件转换有边界:ConvertToUTF8 能帮你“看懂” GBK,但不能把 UTF-8 文件反向转成 GBK;它也不改文件磁盘编码,只是编辑时做内存映射

带 BOM 还是不带 BOM?多数场景该选无 BOM 的 UTF-8

Sublime 右下角能看到 UTF-8UTF-8 with BOM 两个选项,但它们不是等价切换。前者是标准、干净的 UTF-8;后者开头多三个字节 EF BB BF,会导致 Python 解释器报 SyntaxError: Non-UTF-8 code starting with '\xef',Git 提交时显示异常,Node.js 读取也可能出问题。

除非对接的系统(比如某些老旧 Windows 工具、IE6 时代的 ASP 页面)明文要求 BOM,否则一律用无 BOM 版本。Sublime 默认的 UTF-8 就是无 BOM 的,而 UTF-8 with BOM 只应在明确需要时手动选择。

  • 新建文件后立刻要输中文?不用管 BOM,直接敲字,Ctrl+S 即按 default_encoding_on_save 规则保存
  • 已有文件带了 BOM 想去掉?File → Reopen with Encoding → UTF-8 with BOM → 全选复制 → 新建文件 → 粘贴 → Save with Encoding → UTF-8
  • 插件如 ConvertToUTF8 默认不写 BOM,但它的配置项 write_bom 若被设为 true,就会悄悄加上——检查插件 settings 是否有这一行

编码问题从来不是改一个配置就能终结的事。它横跨新建、打开、编辑、保存、插件介入、跨平台协作多个环节,每个环节都可能卡住。最常被忽略的是:状态栏显示的编码名,只是 Sublime 当前“怎么读”,不是文件“本来是什么”;而保存动作永远忠于“当前怎么读”,不是“你想怎么存”。搞清这个前提,比背一百条配置项都管用。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

452

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

546

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

330

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

81

2025.09.10

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

698

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

219

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1561

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

646

2023.11.24

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

33

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Rust 教程
Rust 教程

共28课时 | 6.6万人学习

Git 教程
Git 教程

共21课时 | 4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号