CClash 中文社区选择客户端 ↗
首页/博客
操作教程

Clash 配置字符串何时需要引号

Clash 配置字符串何时需要引号。了解适用条件、操作步骤与常见问题的排查方法。

编辑部 · 更新 2026-10-04

Clash 配置按 YAML 1.2 书写。标量可以是无引号的 plain 样式,也可以是单引号或双引号的 flow 标量,还可以是用 | 或 > 表示的块标量。引号属于呈现样式:需要它的条件,是「不写引号时,字符会被当成结构指示符,或会被应用按类型解析成非字符串」。不必给每个字段无条件加引号。

适用条件

适用于编辑 Clash 所用 YAML 文本、为节点名、路径、说明性字符串选择是否加引号的场合。适用于解析报错、怀疑与未加引号有关、但还没有改字段含义的情况。不适用于订阅下载或网络失败。本文只依据 YAML 1.2.2 的标量与指示符规则。

何时需要引号:判断依据

  1. 值里会出现注释或键值分隔。映射用「冒号加空格」标记键值对;注释以井号开始。若字符串本身含有冒号加空格,或含有会被读成行内注释的井号,plain 样式会改变结构,必须改用引号或块标量。规范示例把「 # Not a comment」放进单引号,正是为了让井号成为内容。
  2. 值会与其它指示符冲突。块序列条目以短横线加空格开头;复杂键用问号加空格;锚点用 &,别名用 *;标签用 !;文档用三条短横线与三个点;flow 集合用方括号、花括号和逗号。字符串若按 plain 写出会被这些指示符切开,就需要引号。
  3. 需要转义序列时用双引号。规范写明双引号样式提供转义;单引号适用于不需要转义的场合。单引号字符本身写成两个连续单引号。
  4. 不希望被隐式类型化。未加标签的节点类型取决于应用;规范示例用引号包裹的 012345 表示字符串,同时另有整数、浮点、true、false、null 等示例。若你要的是字符串形态的数字或看起来像布尔值的文本,应加引号。

先看去掉引号后该行是否仍是一个标量,再看加载后类型是否仍是字符串。任一条件不满足就需要引号或块标量。多行且必须保留换行时,应使用 |,因为所有 flow 标量跨行时换行都会被折叠。

失败时下一步

加引号后仍无法加载,属于格式不良的流:检查引号是否成对、单引号内是否用两个单引号表示一个单引号、双引号内转义是否写完。不要靠再套一层引号盲目重试。若能加载但值变成带引号字符本身,说明引号被当成了内容,应比较加载后的标量而不是比较源文字。确认前不要覆盖仍可加载的配置。

资料来源: https://yaml.org/spec/1.2.2/