猫工具站
帮助中心 猫Blog 关于我们 广告合作 EN

占位文本和摩尔斯电码:两个生成器各自藏了什么规则

文本更新于 2026-09-29

站内有两个页面是「生产文字」而不是「度量文字」的:假字生成器 和 摩尔斯电码。两者都只在页面里算,不发任何请求,也都在界面之外写了几条不会告诉你的规则。

假字:数量框的行为和它标的上下限不一样

三个控件——语种(拉丁文 / 中文)、单位(段 / 句 / 词)、以及一个标着 min=1 max=50 的数量框。数量先被脚本自己解释一遍,再套用上下限,于是结果和界面给人的预期有偏差:

  • 空着,或者填了非数字 → 3。
  • 填 0 → 也是 3,而不是 1。脚本在「小于 1 就抬到 1」这条检查之前,先把读到的 0 换成了默认值。
  • 填 1 → 1,能进到检查这一步的数字都会被下限接住。
  • 填 500 → 50,上限这条是正常的。

另外这个框是 change 提交而不是逐键提交,所以敲完数字不点别处、也不按回车,就不会重新生成——你看到的仍是上一个值的结果。

拉丁文来自那一段西塞罗,词元带着原文的标点

那段经典文本按空格和逗号被切成 69 个词元,其中 64 个互不相同(dolor、ut、dolore、in 会重复出现)。切分时逗号被吃掉了,句号却留在它前面那个词上,于是有 5 个词元自带句号:elit. aliqua. consequat. pariatur. laborum.

表现出来就是两件事:

  1. 句号翻倍或句中出现断点。 一个自带句号的词元落在句子中间,就会被读成一句说完;落在末尾则出现 ..。
  2. 随机大写。 有 5 个词元保留了它们在原文句首的大写——Lorem Sed Ut Duis Excepteur——所以句子中间随时会冒出一个大写词,看着像专有名词。

反过来,逗号一个都不会留下。生成出来的拉丁文里没有逗号,这正是它读起来一路平铺、不断句的原因。

长度不是随机的,而是固定套路:段 = 先取 3–7 个词元、首字母大写并补一个句号,再追加 2–4 个词元和一个句号,也就是 5–11 个词一段;句 = 5–14 个词,且所有句子连成一行输出,不是一句一行;词 = 直接吐 N 个词元。

中文假字是真中文,但内容写的是本站

中文模式有独立的数据,不会像某些站那样把中文换成英文。三点要在放进设计稿之前知道:

  • 段模式 是从固定的 12 句里取 3–8 句直接相接,每句本身以 。 结尾,所以不需要分隔符。
  • 句模式 同样从这 12 句里取 N 句,用空格隔开。数量一大,重复是常态而不是巧合——池子就这么小。
  • 词模式 从 53 个词里取(猫 工具 站 免费 在线 实用 浏览器 …),词与词之间留空格。这读起来是关键词墙而不是文章,用来检验中文字形的折行没问题,用来判断真实文案的观感不合适。

而这 12 句写的是本站与同系列品牌,所以中文假字铺满版面后,页面上会实实在在出现「猫工具站是猫系列品牌的一员」这类句子。稿子要给外人看的话,这一层值得替换掉。

电码:可用码表比对照图大得多

页面上的对照网格画了 36 格——A 到 Z、0 到 9。但翻译用的表里有 57 条:这 36 条之外还有 21 个标点(. , ? ! : ; ' " ( ) [ ] { } & * @ = + - /)。

也就是说,标点是能正确编码的,尽管页面上有三处文案说不能。Hello, world! 会输出标准的逗号码和叹号码。真正没有对应编码的是 ASCII 字母、数字和这 21 个标点之外的字符——带重音的字母(café 里的 é)、货币符号、中日韩文字、emoji,它们一律变成 ?。

字母查表前先转大写,所以输入的大小写不影响结果。

空格、斜杠,以及不对称的往返

  • 字母之间一个空格,单词之间用 /。
  • 切分依据是任意空白,因此换行等同于一个词分隔符——粘贴多行文本,原来的换行处会变成 /。
  • 输入不做 trim。行首或行尾多出来的空格会成为一个「空词」,在结果开头或结尾留下一个多余的 /。

解码方向刻意做得宽容:认不出的码不报错,直接以 ? 就地替换。但反向映射是多对一的,因为有三组标点共用一个码——(、[、{ 都是 -.--.,)、]、} 都是 -.--.-。这组字符编码后再解码,回来的一定是 { 和 },与进去时是什么无关。除此之外都能原样往返,前提是你解码的是工具输出的大写结果。

发音:节拍数值,以及它为什么会叠在一起

振荡器固定 700 Hz,通断没有淡入淡出,所以音量小的时候听起来像 clicks。代码里的时长是:

间隔 秒 折算成「点」
点 0.08 1
划 0.24 3
字符内部间隔 0.08 1
字符之间间隔 0.20 2.5
单词之间间隔 0.40 5

点和划的比例是教科书式的(一划等于三点),但字符间和词间的间隔被压短了,分别是 2.5 点和 5 点,而页面自己的说明写的是通行的 3 和 7。所以真实听感比标准电码更急、更挤——如果你用它来练听音节拍,这一点要计入;如果只是听听一个词怎么拼,无所谓。

播放还有三个机制上的事实:

  • 凡不是 . 的字符都按划发音,包括不支持字符变出来的 ?。文本里混进一个重音字母,音频里就多出一划。
  • 每次点播放都会新建一个音频上下文,而页面没有停止按钮。连点两次就是两遍叠在一起,只能等前一遍播完;这些上下文也会一直累积到刷新页面。
  • 编码模式下,播放读的是结果框,而结果框可以手改。你可以在那里手动调点和划,播出翻译器永远不会生成的序列。

你的文字会去哪儿

两个页面都不外发任何内容:生成和翻译都发生在页面脚本里,唯一离开机器的流量是这个站本来就会有的统计、广告,以及桌面端的 Live2D 组件。两页都保留了实时示例——电码页打开时输入框里是 SOS,假字页打开时已经生成过一次——所以你没有输入之前看到的那些,是示例而不是你的结果。

本指南用到的工具

广告