Zalgo 故障文字是怎么生成的:克苏鲁乱码背后的组合附加符
讲清楚 Zalgo 故障文字的原理:在字符上下堆叠 Unicode 组合附加符,做出滴血错位的克苏鲁感。包含强度可调、实际样貌、能否复制到任何地方,以及社交趣味和恐怖梗图的用法。
Zalgo 故障文字是怎么生成的:克苏鲁乱码背后的组合附加符
你大概在某个恐怖梗图里见过这种文字:字母像在滴血,上面扎着尖刺,下面拖着长长的尾巴,整段看着像被污染、像信号故障、像快要从屏幕上融化下来。这就是 Zalgo 文字。名字来自一个很老的网络怪谈,后来变成一种专门的文字效果。很多人以为这是某种特殊字体,其实不是,它用的全是标准 Unicode,任何支持 Unicode 的地方都能显示。
下面把它的来路、原理、强度怎么调、实际长什么样,以及到底能不能粘到各个平台,一次讲清楚。
它不是字体,是叠加上去的符号
先纠正一个常见误解:Zalgo 不需要安装任何字体。它靠的是 Unicode 里一类特殊字符,叫组合附加符(combining diacritical marks)。这类字符自己不占一个独立位置,而是锚定在前一个字母上,渲染时叠在它身上。
正常情况下,人们用这类符号给字母加重音,比如法语的 é、西班牙语的 ñ。但 Unicode 没有限制一个字母上能叠几个。于是 Zalgo 干的事就是:在同一个字母上,把几十个组合符一股脑堆上去。字母还是那个字母,底层依然是普通字符串,只是视觉上被符号埋住了。
主力区段是 U+0300 到 U+036F 这一段,里面有上百个组合符,比如组合重音符、组合波浪号、组合下点。生成器从这个池子里随机抽取,分别往字母的上方、中间、下方塞,字母就长出了尖刺、横杠和拖尾。
上、中、下三个方向各堆多少
真正决定故障感强弱的,是每个字母上叠了多少个符号,以及叠在哪个方向。一个像样的 Zalgo 工具会把这三个方向拆开来调:
- 上方(above):锚点在字母顶部的组合符,做出向上扎的尖刺。
- 中间(overlay):盖在字母身上的符号,比如组合斜杠、组合短横,让字母看着像被划掉或穿透。
- 下方(below):挂在字母底部的组合符,做出向下滴、向下拖的尾巴。
举个具体的:写一个字母 h,再给它接三个上方组合符,浏览器会把这三个符号全部锚定在这个 h 上,渲染出来就是一个头顶长刺的 h。把上方数量从 3 调到 10,刺就更密更长;再给下方也加 10 个,这个 h 就同时往上扎、往下滴。把这套操作铺到整句话的每个字母上,经典的滴血乱码团就出来了。
分方向调的好处是能做出风格。只加下方,文字像在向下融化;只加上方,像在往天上炸;三个方向都拉满,就是四面八方乱炸的那种完全糊掉的效果。
hello 加上 Zalgo 之后长什么样
光说不直观,看一个真实例子。普通的 hello,经过中等强度的 Zalgo 处理后,大致会变成这样:
H̸̢̛e̵l̷l̴o̶
每个字母还是 h、e、l、l、o,顺序没变,但每个字母身上都挂了好几个组合符:有的从顶上扎出来,有的横在中间像被划了一刀,有的往下拖出尾巴。如果把强度继续往上拉,这五个字母的拖尾会越来越长,甚至盖到上一行,整段读起来就像信号坏掉的画面。
关键点在于:这串东西复制出去,底层仍然是 h-e-l-l-o 五个字符加一堆组合符。它没有变成图片,也没有用什么私有编码,所以粘到别处依然是这个效果。
能不能复制到任何地方
这是大家最关心的问题。答案是:大部分地方能,但有例外,而且例外的原因值得知道。
因为 Zalgo 用的全是标准 Unicode 组合符,凡是按 Unicode 规范渲染文本的地方,理论上都能显示。社交媒体简介、帖子、Discord 和游戏网名、聊天框,通常都没问题。
但有两种情况会"翻车"。第一种是平台锁死了行高,或者会裁掉溢出的符号。有些聊天框、搜索栏、游戏名字段为了排版整齐,会限制一行能长多高,于是你的拖尾被切掉,或者文字压到上一行。这不是符号没了,它们还在复制出来的字符串里,只是被这个字段的样式遮住或截断了。遇到这种情况,把强度调低,让叠加塞进一行高度就行。
第二种是平台出于安全直接过滤组合符。Zalgo 能撑破没留余量的脆弱布局,所以有些论坛和表单会主动把组合符剥掉,只留下干净字母。这时候不是你的问题,是对方故意不收。
我自己试下来的几个经验
我把同一句话从最弱拉到最强各试了一遍,发现做网名和做横幅完全是两种用法。当昵称用时,我几乎不会超过"普通"档,因为再往上,Discord 的名字字段就开始切尾巴,别人还以为我打错字。但做一次性的恐怖梗图配文时,我会直接拉满,要的就是那种读不太清、却一眼就吓人的视觉冲击。还有一个小心得:上方符号少加一点、下方符号多加一点,文字会有种往下淌的"滴血"质感,比四个方向平均堆好看得多。
顺带一提,如果你想搞清楚某个故障符号到底是哪个码位,可以把它丢进 Unicode 字符检查器 拆开看,每个组合符的 U+ 编号都会列出来,对照着调很方便。
什么时候别用它
Zalgo 好玩,但有边界。凡是要保持可访问、可搜索的地方都别用重度故障文字。屏幕阅读器遇到一堆叠加符会读得磕磕绊绊,搜索引擎干脆忽略这些符号,于是被故障化的法定姓名、客服工单、正经文档,既难读又搜不到。
还有一点要记住:它就是纯文本,不能运行代码,也不带病毒,所以收到别人甩来的乱码不用怕。如果你需要把它还原成能读的原文,一个合格的工具会提供"清除"功能,逐字符剥掉 U+0300 到 U+036F 这一段的组合符,把底层字母原样还给你,不用自己翻正则。
想直接上手生成,去 Zalgo 故障文字生成器 拖一拖强度滑块,几秒就能看到效果,全程在浏览器本地运算,输入的文字不会上传。
Made by Toolora · Updated 2026-06-13