CodeKitHub
文本工具

上标下标生成器

最后更新:

上标和下标不仅仅是一种字体样式——你在 x² 或 H₂O 中看到的字符是真正独立的 Unicode 码位(如 U+00B2 SUPERSCRIPT TWO),无论在哪里以纯文本显示,都会呈现为缩小并上移或下移的样子,无需 HTML、LaTeX 或任何特殊格式。本工具会即时将你输入的任何内容转换为对应的上标和下标 Unicode 字符,方便你将结果粘贴到聊天消息、社交媒体帖子、电子表格单元格,或任何只接受纯文本的地方。

工具介绍

上标和下标通常在文字处理软件和网页中作为一种文本格式(类似加粗或斜体)应用,但 Unicode 还定义了一小部分专用字符,它们本身就是缩小并上移(上标)或下移(下标)的,独立于任何格式设置。Unicode 标准的 Letterlike Symbols 以及 Superscripts and Subscripts 区块 定义了这些码位,这也是为什么它们能在完全不支持富文本格式的地方,正确地以纯文本形式渲染出来。

由于这些是独立的字符,而不是应用于普通字母的一种样式,Unicode 只为有限的一组字符定义了上标和下标版本——全部 10 个数字和少数常见符号,但只有部分字母(值得注意的是,Unicode 中没有上标 Q,而下标则完全缺少若干辅音字母)。本工具会尽可能映射每个字符,并保持任何不受支持的字符不变,同时给出提示,说明有多少字符无法转换。

由于输出是纯 Unicode 文本,而不是 HTML 或特殊字体,它可以在任何能够显示 Unicode 的环境中使用——社交媒体帖子、聊天应用、电子表格单元格、纯文本邮件和文件名——无需富文本支持。

为什么使用它?

  • 在不支持 HTML 下标标签的地方(如社交媒体、聊天应用或文件名)以纯文本书写 H₂O 或 CO₂ 之类的化学式。
  • 在没有公式编辑器的地方书写 x² 或 aⁿ 之类的数学或科学符号。
  • 在纯文本场景中为脚注式引用或序数式格式(1ˢᵗ)添加带样式的上标文本。
  • 立即看出你的文本中哪些字符没有对应的 Unicode 上标/下标形式,而不是猜测为什么转换后的字符串看起来不对。
  • 100% 本地运行:你的文本完全在浏览器中转换,永远不会发送到服务器。

使用方法

  1. 在输入框中输入或粘贴你的文本。
  2. 上标和下标转换结果会在你输入时于下方即时更新。
  3. 如果有字符无法转换(Unicode 并未为每个字母都定义上标/下标形式),提示会告诉你有多少字符被保留不变。
  4. 点击任一结果旁边的“Copy”将其复制到剪贴板,随时可粘贴到任何地方。

示例

输入

H2O and x2

输出

Superscript: ᴴ²ᴼ ᵃⁿᵈ ˣ² · Subscript: H₂O ₐₙd ₓ₂

注意下标输出保留了普通字母“H”“O”和“d”——Unicode 完全没有为大写字母定义下标形式,小写字母 d 也没有,因此它们被保留原样,而不是被悄悄省略或替换。

哪些字符有上标/下标对应形式?

Unicode 在这两者之间的覆盖并不均衡——下标尤其完全缺少许多字母。

字符集上标覆盖情况下标覆盖情况
数字 0–9完整(全部 10 个)完整(全部 10 个)
小写字母完整(全部 26 个)部分——缺少 b、c、d、f、g、q、w、y、z 等
大写字母部分——缺少 QUnicode 完全未定义
符号(+、−、=、(、))完整完整

相关工具

如需其他文本变换方式,可以试试这些工具。

ASCII 艺术字生成器 · 大小写转换器 · 花体字生成器

常见问题

这和使用加粗/斜体格式一样吗?

不一样。大多数应用中的加粗和斜体是应用于普通字母的一种显示样式。这里的上标和下标是独立的 Unicode 字符(不同的码位),它们本身就是缩小并上移或下移的——这也是为什么它们能在任何支持 Unicode 的地方作为纯文本、无需格式化就能正常工作,而加粗/斜体样式通常需要富文本格式才能渲染。

为什么不是所有字母都有上标或下标版本?

Unicode 只为历史上确实需要的特定一组字符定义了专用的上标和下标字符——主要是数字以及数学和化学符号中使用的字母。它在这两种情况下都没有涵盖完整的字母表(例如没有上标 Q,下标也完全缺少若干辅音字母),因此任何没有对应定义的字符都会保持原样。

把它粘贴到 Instagram、TikTok 或 Discord 里能正常显示吗?

在大多数情况下可以——由于输出是标准的 Unicode 文本而不是 HTML 格式,它可以在任何支持 Unicode 文本的地方正确显示,几乎涵盖了所有现代社交媒体和聊天应用。

为什么 H₂O 看起来和化学教科书里的 H2O 不一样?

在教科书中,“2”是通过文档的排版系统以下标形式排出来的。而这里的 ₂ 是一个独立的 Unicode 字符(SUBSCRIPT TWO),而不是被格式化的“2”,这就是为什么它即使在不支持格式设置的纯文本环境中也能正确显示。

我的文本会被发送到服务器吗?

不会。所有转换都完全在客户端使用 JavaScript 在你的浏览器中完成,采用 Unicode 字符映射表。你输入的任何内容都不会被上传或存储。

相关工具