故障文字生成器,免费

输入或粘贴文本,添加 Zalgo / 故障效果。调整强度并复制结果。

结果

请输入文本并点击「生成」。

工作原理

  1. 输入文本:输入要应用故障效果的单词或短语。
  2. 调整强度:通过强度滑块控制故障级别 · 从轻微的数字噪点到严重的文字损坏。
  3. 复制结果:复制故障文本(Unicode 组合字符),粘贴到任意地方 , 社交平台个人简介、Discord、聊天应用,或纯 HTML。

Zalgo 文字的来源

「Zalgo 文字」,即看起来损坏、上下溢出垂直标记的文字,有一个特定的起源。角色「Zalgo」首次出现在 2004 年 7 月 27 日 Something Awful 论坛上的一个 creepypasta 图像宏中,由用户 Shmorky(Dave Kelly)发布,作为对在 Goons(Something Awful 社区成员)中流传的「He Is Coming」/「He Comes」套路的讽刺。原始概念是一个邪恶实体,其在漫画中的存在将角色的对话气泡损坏为难以辨认的涂鸦。「He comes」以堆叠的 Unicode 组合标记呈现的视觉风格成为该 meme 的标志;在接下来的几年中,该格式从 Something Awful 逃出,通过 4chan、Tumblr、MySpace 传播,最终进入主流社交媒体。「Zalgo」这个名字作为该体裁的标签留了下来,二十多年后,它仍然是每个故障文字生成器使用的术语。基础的 Unicode 技巧,即堆叠组合标记,比这个 meme 早了几十年;Zalgo 所做的是使这种美学流行起来。

使其工作的 Unicode 组合标记

故障文字使用组合字符,即不会自行渲染但会视觉上附加到前一个基础字符的 Unicode 码位。主要块是 Combining Diacritical Marks(U+0300-U+036F),有 112 个码位,涵盖了拉丁文字语言使用的重音符号和变音符号:组合尖音符(U+0301,用于制作 á)、组合重音符(U+0300,à)、组合波浪号(U+0303,ã)、组合扬抑符(U+0302,â)、组合上环(U+030A,å)等等。三个额外块提供更多标记:Combining Diacritical Marks Supplement(U+1DC0-U+1DFF),带有很少使用的历史和语音标记;Combining Diacritical Marks for Symbols(U+20D0-U+20FF),带有数学和符号组合标记(组合上左箭头、组合圆圈、组合三重下点);Combining Half Marks(U+FE20-U+FE2F),带有横跨两个字符的标记。故障生成器选择输入字符,然后为每个字符附加随机选择的组合标记,通常每个字符堆叠 5-30 个以达到可识别的 Zalgo 效果,从这些块中抽取。标记视觉上分为三个区域:基线上方(大多数变音符号在此渲染)、字符之间(覆盖标记如长划线、斜线)和基线下方(变音符、下点、下垂直线)。此工具将三个区域公开为独立的切换,以便你可以产生仅上方、仅下方或全覆盖的故障样式。

Unicode 规范化,为什么有些应用程序剥离故障文字

Unicode 定义了对许多带重音字符进行编码的两种方式:预组合(单个码位,如 é = U+00E9)和分解(基础字母加组合标记,é = U+0065 + U+0301)。Unicode 标准的规范化形式(UAX #15)定义了如何在它们之间转换:NFC(组合)偏好预组合形式;NFD(分解)将一切分解。许多平台对传入文本应用 NFC 规范化,这会在可能的情况下将组合标记折叠为预组合字符,但故障文字通常使用没有预组合等价物的组合标记(因为将基础字母与 30 个随机不相关的标记组合不是任何预组合形式中存在的「真实」字符)。这些标记在规范化中存活。然而,Unicode 标准的 Stream-Safe Text Format 建议最多连续 30 个非起始(组合)字符;某些实现强制执行此上限以抵御文本渲染攻击。例如,Twitter 使用 NFC 计数字符,可能在阈值后视觉截断故障文字;Discord 渲染大多数故障文字但限制渲染高度;Instagram 和 TikTok 有不同的限制。臭名昭著的 iOS 「Effective Power」崩溃(2015 年 5 月)ChaiOS Telugu 文本炸弹(2018 年 1 月)都是由格式错误的组合标记序列导致 OS 文本渲染器崩溃造成的;现代 OS 因此应用更保守的解析。

故障文字出现的地方

可访问性,故障文字对屏幕阅读器不友好

故障文字对辅助技术基本上是不可读的。屏幕阅读器(Windows 上的 NVDA、JAWS,macOS/iOS 上的 VoiceOver,Android 上的 TalkBack)处理组合标记的方式不同,NVDA 倾向于在每个标记上结巴;JAWS 用其完整的 Unicode 名称读出许多标记(「组合尖音符、组合重音符、组合波浪号...」);VoiceOver 在每个字符处尴尬地停顿。一个 5 字符的单词,每个字符有 20 个组合标记,产生 105 个码位,屏幕阅读器必须以某种方式宣布,其中没有一个是有用的信息。结果是一面难以理解的噪音墙,使盲人和低视力用户实际上看不到文本。同样适用于有认知或视觉处理差异的用户,他们可能会发现堆叠的重标记令人头晕或诱发偏头痛。正式语境中的故障文字、文档、替代文本、可访问性必需的 UI 元素,从构造上就对残疾用户不友好。不要在带有语义意义的地方使用故障文字。对于社交简介、memes、休闲帖子中的装饰性使用,只要消息也在某处以纯文本传达,权衡是可接受的;对于文本内容是实际消息的任何内容,坚持使用可读的 Unicode。

诚实的范围:此工具做什么和不做什么

此工具通过在你的输入的每个字符上堆叠 Unicode 组合标记来生成 Zalgo 风格的故障文字。它不产生其他故障效果,这些通常需要在实际渲染的文本上进行 CSS 或画布渲染,而不是 Unicode 技巧。RGB 色差偏移(使文本看起来像未正确套印的印刷品的红绿蓝偏移效果)是使用 text-shadow 加偏移红/绿/蓝副本的 CSS 效果。扫描线覆盖(CRT 显示器水平线效果)是重复线性渐变的 CSS 背景图案。故障动画(带噪声的抖动 RGB 偏移)需要 CSS 关键帧动画。像素排序 / 数据弯曲(「破损 JPEG」滑动像素效果)需要在 JavaScript 中实际操作图像数据或真实的图像编辑器。此工具的输出是可移植的纯 Unicode,可以粘贴到任何地方;对于视觉效果故障样式,请查看基于 CSS 的故障效果生成器。这两种方法互补:这个用于 Unicode 文本上下文,CSS 效果工具用于在页面上渲染的上下文。

功能特性

常见问题

故障文字能在所有应用中显示吗?

Unicode 故障文字使用组合字符,可在大多数应用中显示,包括 Twitter、Discord、Instagram 和消息应用。一些应用会删除或限制组合字符,可能会削弱效果。请在目标平台上测试。

可以在 HTML 中使用故障文字吗?

可以 , 直接将 Unicode 故障文本粘贴到您的 HTML 内容中。由于它只是组合字符,无需额外的 CSS 或 JavaScript,即可在任何元素中显示。

Zalgo 文字从哪里来?

它起源于 2004 年 7 月在 Something Awful 论坛上的 creepypasta,由用户 Shmorky(Dave Kelly)发布,作为「He Is Coming」套路的讽刺。角色「Zalgo」是一个邪恶实体,其在漫画中的存在将角色的对话气泡损坏为以堆叠的 Unicode 组合标记呈现的难以辨认的涂鸦。这种美学从 Something Awful 通过 4chan、Tumblr 和 MySpace 逃出,该名称作为该体裁的标签留了下来。基础的 Unicode 技巧,组合标记堆叠,比这个 meme 早了几十年。

故障文字可访问吗?

不,故障文字对屏幕阅读器不友好(NVDA 结巴,JAWS 大声朗读每个组合标记的完整 Unicode 名称,VoiceOver 尴尬地停顿),堆叠的标记可能对认知/视觉处理差异的用户视觉上令人迷失方向或诱发偏头痛。不要在带有语义意义的地方使用故障文字,文档、替代文本、错误消息、说明。对于社交简介和休闲帖子中的装饰性使用,只要实际消息也在某处以纯文本传达,权衡是可接受的。

它也做 CSS 故障效果吗?

不,此工具仅产生纯 Unicode 故障文字。基于 CSS 的故障效果(通过 text-shadow 偏移的 RGB 色差偏移、通过重复线性渐变的扫描线覆盖、通过 @keyframes 的动画抖动)是一个不同的类别,需要文本通过你的样式表渲染,而不是作为纯 Unicode 粘贴。这两种方法互补:Unicode 故障文字用于可移植的纯文本上下文(简介、聊天、帖子),CSS 故障效果用于在页面上渲染的上下文(你自己网站的标题)。

我的文本会被发送到任何地方吗?

不会。生成完全通过 JavaScript 在你的浏览器中运行。你输入的文本永远不会越过网络,在单击 Generate 时在 DevTools 的 Network 标签中验证,或在页面加载后将其离线(飞行模式),工具仍然工作。

相关工具

CSS 渐变文字生成器,免费 CSS 文字描边生成器,免费 CSS 动画生成器,免费 CSS 渐变边框生成器,免费