Free Tool

零宽空格生成器

复制零宽空格(U+200B)。一个零宽格式字符,告诉浏览器和文本引擎一行可以在哪里换行,不显示连字符也不占空间。

生成零宽空格
选择要复制的 U+200B 字符数量
零宽空格U+200B

一个零宽格式字符,标记换行机会。不渲染、不占空间、绝不插入连字符。

零宽空格的用途

零宽空格(ZWSP,U+200B)是一个没有可见字形、前进宽度为零的 Unicode 格式字符。它的作用是告诉渲染引擎一行允许在哪里断开。HTML 的 <wbr> 元素行为完全相同。浏览器和文字处理软件在换行长字符串时会参考这些断点机会。一个长 URL 在每个斜杠后放上 U+200B,就会在这些位置整齐换行,而不是溢出容器。这个字符是为泰文、老挝文、高棉文这类词间不加空格的文字设计的。在词之间插入 U+200B,渲染器就能换行。在拉丁字母文本里它有另一套用途:打断 Twitter @提及和 #话题标签让它们不自动生成链接,拆分德语长复合词,以及悄悄在长标识符内部标记断点。

U+200B 真正有用的地方

长 URL 和字符串换行
在长 URL 的每个斜杠或句点后放 U+200B,浏览器会在这些位置换行而不是撑破布局。断点处不出现连字符。
防止帖子里的自动链接
Twitter 等平台会把 @用户名和 #话题标签转成链接。在符号和文字之间插一个零宽空格,能打断匹配又不改变阅读效果。
CSS 中的断词控制
把 U+200B 和 word-break: keep-all 搭配,可以在 CJK 文本里标记允许换行的位置,同时压制其他地方的断行。CSS Text 规范把这列为预期模式。
文本水印
在文档的选定位置插入 U+200B,你就得到一个能扛住复制粘贴、读者却看不见的指纹。每个接收者拿到不同的模式。

U+200B 在边界处如何表现

U+200B 是格式字符(通用类别 Cf),不是空格。这个区别很重要。它不是空白,所以 JavaScript 的 trim() 不会移除它。但它又不可见,所以对人来说看起来一样的字符串,字节层面可能不同。安全研究人员利用这个性质在标识符里藏载荷:两个都渲染为「admin」的字符串,如果其中一个含 U+200B,对数据库来说就是不同的。Trojan Source 披露(CVE-2021-42574 和 CVE-2021-42694)记录了不可见 Unicode 字符如何让源代码的编译结果与读到的不一样。在渲染方面,U+200B 在浏览器里被广泛支持,但会被清理输入的聊天应用剥离。WhatsApp 和 TikTok 从消息和简介里移除它,Discord 则在不同字段里表现不一。平台剥离它时,备用方案通常是 U+2800(盲文空白)这类可见却空白的字符。

使用 U+200B 前的注意事项

U+200B 标记换行机会,不强制换行。是否换行仍由渲染器根据可用宽度决定。

断点处绝不显示连字符。想要换行时出现可见连字符,改用软连字符(U+00AD)。

JavaScript 的 trim() 不移除 U+200B,因为它不归类为空白。需要剥离时,用针对 U+200B 的正则。

要禁止而非允许换行,用 U+2060(字连接符)。它是 U+200B 的反面,也是已弃用的 U+FEFF 的现代替代品。

清理输入的聊天应用常剥离 U+200B。要发空白消息或用户名,换用 U+2800 或 U+3164。

把 U+200B 放进话题标签或 @提及会破坏链接。想提到 CSS 的 @media 规则又不触发个人资料链接时很有用。

零宽空格在哪里可用

U+200B 在所有现代浏览器和多数文字处理软件里都受支持,作为换行机会发挥作用。CSS Text Module 规范明确把它和 <wbr> 元素并列,作为标记换行点的方式。在聊天应用和社交媒体里,支持参差不齐。WhatsApp、Instagram、Discord 在某些字段接受它,在另一些字段剥离它。TikTok 从简介里移除它。游戏平台很少在用户名里接受它。经验法则:在浏览器或文本编辑器里,U+200B 靠谱;在聊天应用或社交输入里,先测试,并备好 U+2800 或 U+3164 作为替代。

关于 U+200B 的常见问题