聊天应用上的空白消息
WhatsApp、Discord、Telegram 拒绝真正为空的消息。单个谚文填充(U+3164)或盲文空白(U+2800)能通过校验,作为空白行发出。
文字工具
四个不可见 Unicode 字符,各司其职。按码点选择——U+200B 用于换行机会,U+2800 和 U+3164 用于空白用户名和消息,U+3000 用于全角 CJK 间距。
空白文字是一串渲染时没有可见字形的 Unicode 字符。并不存在唯一的「不可见字符」,有好几种,行为各不相同。U+200B 这类零宽字符不占空间,作用是标记换行机会。U+2800(盲文空白)、U+3000(全角空格)、U+3164(谚文填充)这类可见却空白的字符各占一个字符单元,但屏幕上什么都不画。这个区别很重要,因为各平台对它们的过滤方式不同。多数聊天应用会剥离开头和结尾的空白,这会移除普通空格(U+0020)和制表符,但往往放过 U+2800 和 U+3164,因为 Unicode 把它们归类为符号和字母,而不是空白。人们想要空白用户名或空白消息时会选用这两个字符,原因就在这里。
WhatsApp、Discord、Telegram 拒绝真正为空的消息。单个谚文填充(U+3164)或盲文空白(U+2800)能通过校验,作为空白行发出。
当表单要求输入你没有的内容时,空白字符能满足「非空」检查。字段看起来没动,提交的却是一个真实字符。
Instagram 和 TikTok 简介会合并连续空格。盲文空白能占住一个空白单元而不被裁剪,让你手动控制换行和缩进。
据报道 PUBG Mobile 和 Free Fire 接受用户名里的 U+3164。支持情况随版本变化,提交前先测试。
Unicode 给每个字符分配一个通用类别,这个类别决定了平台如何对待它。U+0020(普通空格)是空格分隔符。U+200B(零宽空格)是格式字符。U+2800(盲文空白)是符号。U+3164(谚文填充)是字母。U+3000(全角空格)和普通空格一样是空格分隔符,但是全宽。聊天应用执行剥离空格的例程时,通常会移除空格分隔符,有时也移除格式字符,但放过符号和字母。盲文空白和谚文填充能在零宽空格被剥离的地方仍然生效,原因就在这里。第二个变量是宽度。零宽字符在视觉上不占成本,但也不会把文字撑开,用于缩进毫无用处。U+3000 宽度为一个 em,所以 CJK 文本用它做段落缩进,而不是堆叠普通空格。U+2800 和 U+3164 各占一个字符单元,这让它们适合在按字符计数的用户名字段里占住一个空白行。
谚文填充(U+3164)的接受度最广:它能通过 Discord 昵称和消息、Instagram 简介和评论、TikTok 简介、WhatsApp 和 Reddit 的校验。盲文空白(U+2800)紧随其后,当审核机器人过滤谚文字符时,它是更好的选择。零宽空格(U+200B)在浏览器和多数文本字段里可用,但会被激进剥离的聊天应用移除;TikTok 尤其会从简介里移除它。全角空格(U+3000)在 CJK 语言界面和任何接受全角文本的字段里受尊重,但它渲染为可见空白而非一无所有。Discord 用户名(@handle)自 2023 年起只接受小写字母和数字,所以那里任何不可见字符都不奏效,只有服务器昵称和显示名称可以。
在上面选一个字符,设置需要的数量,点击复制。聊天应用和用户名场景下,谚文填充(U+3164)是最稳妥的默认选择;平台剥离谚文时,盲文空白(U+2800)是备用方案。
空字段不含任何字符,通不过任何「必填」检查。空白文字含真实的 Unicode 字符,只是渲染为空。字段能通过校验,因为字符确实存在,哪怕它们不可见。
空白消息或用户名,先用谚文填充(U+3164),被过滤就换盲文空白(U+2800)。长词内部需要换行机会,用零宽空格(U+200B)。中文或日文里需要全角间距,用全角空格(U+3000)。
平台把它剥离了。多数聊天应用会执行剥离例程,移除开头和结尾的空白,有时也移除零宽格式字符。换一个字符试试。U+3164 和 U+2800 比 U+200B 更常躲过剥离。
不能。Discord @handle 只接受小写字母和数字。有些游戏过滤所有不可见字符。TikTok 从简介里移除零宽空格。依赖它之前,先在具体字段上测试。
这些都是标准 Unicode 字符,本身不违反任何平台规则。但用它们规避垃圾信息过滤器或冒充其他用户,仍可能导致内容被移除。用于排版,不要用于滥用。