工具
指南

URL 友好串(Slug)生成器

文本

将任意文本(含中文、重音字符、emoji)转换为 URL 安全的 slug。可选分隔符、大小写、中文转拼音音译及长度上限,实时预览。

100% 客户端 无后端
输入
输出
输入或粘贴文本以生成 slug。
本页内容

什么是 slug 生成工具?#

slug 生成工具把一个人能读懂的标题转成 URL 安全的 slug——也就是网址里域名之后那段紧凑、小写、没有标点的字符串。How to Brew Coffee at Home 变成 how-to-brew-coffee-at-home;Café Münchën 变成 cafe-munchen;你好世界 变成 ni-hao-shi-jie。博客、电商、文档系统就是靠 slug,从一个本来根本不是为 URL 写的标题里,造出可读、可分享、对 SEO 友好的网址。

棘手的恰恰是大家实际会用的那些字符:重音字母(café)、连字(ß、æ)、破折号和弯引号,还有压根没有 ASCII 表示的 CJK 汉字。一个天真的”删掉所有非 a-z 字符”会把 你好世界 变成空字符串,造出一个坏掉的 URL。这个工具把这三类都处理对了:它分解带重音的字母再剥掉附加符号(é → e),映射那些不能分解的拉丁连字(ß → ss、æ → ae),并把 CJK 汉字音译成无调拼音(你好世界 → ni hao shi jie),让一个中文标题也能产出一个有意义的、可读的 slug。

全部在本地跑。拼音词库只在输入里真有 CJK 时才加载,纯拉丁的 slug 永远不用为它买单。

怎么使用#

  1. 在左侧 输入 框里输入或粘贴标题。
  2. 选 分隔符 —— 连字符(默认)或下划线。
  3. 勾 小写(默认开)把输出折成小写;需要保留大小写就取消勾选。
  4. 勾 音译(默认开)把 CJK 字符转成无调拼音;希望 CJK 被删掉而不是音译就取消勾选。
  5. 可选地设一个 最大长度(0 表示不限)。slug 超过它时会被截断,并且会修掉结尾悬空的多余分隔符,保证 URL 绝不以一个光秃秃的 - 收尾。
  6. 看右侧 输出 框——输入或任一选项一变,slug 立刻出现。点 复制 取走。

状态栏会显示 slug 的长度,并标出两种特殊情况:CJK 是否被音译过、结果是否为了塞进最大长度而被截断。

主要特性#

  • 重音和连字处理。 NFKD 分解加一份小的拉丁兼容映射表,把 café、Münchën、straße、œuvre 变成干净的 ASCII(cafe、munchen、strasse、oeuvre),而不是把字母整个删掉。
  • CJK 转拼音。 中文字符用内置词库音译成无调拼音,所以 你好世界 变成 ni-hao-shi-jie——一个可读、有意义的 slug,而不是空串或乱码。
  • 干净的词边界。 CJK 字符段在走分隔符那一道之前会被空格包起来,所以音译结果是按词分开的(ni-hao),而不是黏成一坨(nihao)。
  • 长度上限带干净截断。 最大长度会截断 slug,再修掉结尾悬空的分隔符,保证 URL 绝不以 - 收尾。
  • 连字符或下划线。 按你的平台期望来选——现代网页 slug 大多用连字符,但某些系统和文件名约定用下划线。
  • 拼音按需加载。 拼音词库只在第一次输入里真有 CJK 时才导入,纯拉丁的 slug 永远不下载它。
  • 本地且从不抛异常。 空输入报 empty;剥得什么都不剩的输入(比如只有 emoji)报 no-output。失败变成一句清楚的提示,绝不抛异常。

实例演示#

把输入框里那句占位标题粘进来,全用默认值(连字符、小写开、音译开):

Café Münchën — 你好世界

一步步看:

  1. 检测到 CJK,于是 你好世界 被音译成 ni hao shi jie。
  2. 剥掉重音:Café → Cafe、Münchën → Munchen。
  3. 破折号和空格塌缩成分隔符。
  4. 结果小写化,再去掉首尾多余的分隔符。

输出框显示:

cafe-munchen-ni-hao-shi-jie

现在把 最大长度 设成 20 再生成一次。slug 被截断,结尾那个悬空的连字符被修掉:

cafe-munchen-ni-hao

注意:重音变成了干净的 ASCII,中文标题变成了按词分开、可读的拼音,长度上限给出的是一个干净的 URL 片段,而不是半截词或者光秃秃一个连字符。

常见问题#

为什么我的中文标题变成了拼音,而不是保留汉字?#

因为 URL 用 ASCII 最安全、最通用。汉字在 URL 里要百分号编码(每个 你 会变成 %E4%BD%A0),对人不可读,对很多分析工具也不友好。无调拼音让 slug 保持可读、有意义、纯 ASCII——ni-hao-shi-jie 比一串百分号强得多。如果你更想保留原字,取消勾选 音译。

emoji 和其他非字母数字符号会怎样?#

会被剥掉。emoji、弯引号、方括号和大多数标点都活不过 slug 流水线——它们不是字母,所以那道”非字母数字塌缩”会把它们变成分隔符。如果你的输入只有 emoji 和符号,全部剥光之后工具会报 no-output,而不是吐出一个空 slug。

分隔符该选连字符还是下划线?#

人要读的 URL 用连字符——搜索引擎把连字符当词边界,几乎所有现代网页平台都用它。下划线适合 slug 其实是文件名或标识符、而系统又把连字符留给别处(版本范围、参数标志)的场景。两种工具都支持,按你的目标平台期望来选。

最大长度是怎么截的?#

先把 slug 完整建出来,再截到要求的长度。如果正好截在一个词中间,词就剩半截;如果截完留下一个尾部分隔符,就把它修掉。这保证 slug 既不超过限制,也不以光秃秃的 - 或 _ 收尾——这才是 URL 字段和数据库列宽真正要求的。

这个工具和 URL 编码是一回事吗?#

不是,区别很重要。URL 编码(百分号编码)是转义字符,让它能在 URL 里传输——café 变成 caf%C3%A9。而 slugify 是把文字归一化成 ASCII 字母和分隔符——café 变成 cafe。slug 用在 URL 里人能读的那一段路径;百分号编码用 query string 里安全传输任意值。你要的是后者,就用 /zh-CN/encoding/url/ 工具。