跳至内容

文本共享工具 - 免费代码片段粘贴箱

免费的在线文本和代码片段共享工具,支持十种常见编程语言的语法高亮自动识别显示效果,可以自由设置分享链接的自动过期时间长短,每次分享都会生成一个独一无二的访问链接,全程无需注册创建账号即可直接使用,特别适合开发者之间快速分享调试代码、错误日志和配置文件等临时性内容。

文本共享工具

0 字符
加载计算器...
📚

文档

文本分享工具(粘贴板)

文本分享工具通常称为粘贴板,是一个用于发布文本块或代码并返回链接的网页,任何打开该链接的人都能看到这些内容。此粘贴板工具完全在浏览器中运行,无需账户,还可以为链接添加可选的语法高亮和过期时间。

文本分享工具的工作原理

大多数粘贴板服务会将文本存储在服务器上,并返回一个指向数据库记录的短链接。此工具的工作方式不同:它没有服务器,也没有数据库,而是将整段粘贴内容直接打包到链接中。

当有人点击“创建链接”时,该工具会执行四项操作:

  1. 构建一个小型对象,其中包含文本、所选语言和过期时间(选择“永不过期”时则不包含过期时间)。
  2. 将该对象转换为一行 JSON 文本。
  3. 使用网页广泛采用的 UTF-8 编码,将 JSON 转换为字节。
  4. 将这些字节编码为 base64url。这种方案会把任意字节转换为字母、数字、- 和 _,因此结果可以安全地放在 URL 中。

编码后的文本会放在页面 URL 末尾的 #p= 之后。# 之后的所有内容称为片段。浏览器加载页面时不会将片段发送给服务器,因此粘贴内容不会被传输到任何地方。读取链接的过程则相反:先解码 base64url 文本,再使用 UTF-8 将字节转换回 JSON 字符串,最后解析 JSON,以恢复文本、语言和过期时间。

由于片段包含完整的粘贴内容,分享链接可以在任何设备或浏览器上使用,而不仅限于创建它的设备或浏览器。无需查询任何内容。打开链接就足以显示内容,就像打开已下载的文件不需要向服务器询问文件内容一样。

为方便使用,该工具还会将每段粘贴内容的本地副本保存为浏览器存储中的草稿。这个副本只能帮助同一个浏览器再次找到自己过去创建的粘贴内容;它不参与共享链接的打开过程。清除该副本也不会破坏任何分享链接,因为链接从未依赖它。

语法高亮

语法高亮会为代码中的关键字、字符串和注释等部分着色,使其结构更易阅读。该工具支持十种选项:

  • 纯文本(无高亮)
  • JavaScript
  • TypeScript
  • Python
  • Java
  • HTML
  • CSS
  • JSON
  • SQL
  • Bash

所选语言会存储在编码后的载荷中,因此打开链接时会自动应用相应的高亮,无需查看者进行选择。

过期时间计算公式

过期选项会设置一个绝对时间戳,以自 1970年1月1日 起经过的毫秒数表示;这是计算机领域常用的参考时间点,称为 Unix 纪元。该工具会将固定时长加到链接创建时刻上:

选项增加的时间
永不过期不存储时间戳
1 小时60 × 60 × 1,000 毫秒
1 天24 × 60 × 60 × 1,000 毫秒
1 周7 × 24 × 60 × 60 × 1,000 毫秒
1 月30 × 24 × 60 × 60 × 1,000 毫秒(固定为 30 天,而不是日历月)

例如,如果创建链接时钟表显示为 1,700,000,000,000 毫秒,创建者选择“1 周”,则存储的过期时间为:

1,700,000,000,000 +(7 × 24 × 60 × 60 × 1,000)= 1,700,604,800,000 毫秒

查看者打开链接时,该工具会将存储的时间戳与当前时间进行比较。如果存储的时间已经过去,工具会显示“此内容已过期”,而不是显示文本。由于过期时间戳与文本一起存储在链接中,因此这项检查在任何设备上都以相同方式工作。

示例:粘贴内容如何变成链接

假设有人分享纯文本 Hello, world!,且不设置过期时间。为了使链接更紧凑,该工具使用较短的字段名构建以下 JSON 对象:

1{"t":"Hello, world!","l":"plaintext","e":null}
2

它将该 JSON 编码为 UTF-8 字节,再编码为 base64url,生成:

1eyJ0IjoiSGVsbG8sIHdvcmxkISIsImwiOiJwbGFpbnRleHQiLCJlIjpudWxsfQ
2

完整的分享链接由页面地址加上 #p= 之后的令牌组成:

1https://whiz.tools/en/development/paste-bin-tool#p=eyJ0IjoiSGVsbG8sIHdvcmxkISIsImwiOiJwbGFpbnRleHQiLCJlIjpudWxsfQ
2

任何打开该链接的人都会使用浏览器解码令牌,将 Hello, world! 读回为纯文本并显示出来。整个过程从未向服务器请求任何内容。

如何分享文本或代码

  1. 在文本框中输入或粘贴文本。输入文本时,字符数会实时更新。
  2. 可选择从语法高亮菜单中选择一种语言。
  3. 可选择设置链接保持有效的时长。
  4. 点击“创建链接”。
  5. 使用“复制链接”按钮复制生成的链接,然后通过任意方便的方式发送。

如何查看共享文本

  1. 打开分享链接。
  2. 文本会立即显示;如果选择了语言,还会显示相应的高亮。
  3. 使用“复制文本”将内容复制到剪贴板。
  4. 使用“新建”开始新的粘贴。

链接创建后,粘贴内容无法编辑。要更改文本,必须创建新的粘贴并分享新链接。

常见用途

  • 开发者分享用于代码审查或调试求助的代码片段。
  • 教师分享入门代码或说明。
  • 任何需要在自己的两台设备之间转移文本块(例如列表或笔记集合)的人。

如果文本需要由多人同时编辑,共享文档工具更合适。如果代码需要保留永久历史记录,Git 等版本控制系统更合适。

限制与隐私

由于整段粘贴内容都位于链接中,实际大小限制取决于 URL 本身的长度,而不是存储配额。浏览器可以处理较长的 URL,但许多电子邮件程序、聊天应用和旧系统会截断或拒绝过长的 URL,因此超大的粘贴内容可能无法通过所有渠道顺利传输。短文本和中等长度的粘贴内容不受影响。

片段从不发送到服务器,因此工具本身永远不会知道粘贴了什么。任何拥有完整链接的人都可以打开它,所以应像对待链接所包含的文本一样对待分享链接:不要用这种方式分享密码或其他敏感数据;如果内容应当保密,也不要将链接发布到公共场所。

常见问题

共享文本实际存储在哪里? 它没有存储在链接之外的任何地方。文本、所选语言和过期时间都直接编码在链接的片段中,即 # 之后的部分。链接本身就是唯一的副本。

链接在其他设备或浏览器上能使用吗? 可以。由于内容随链接一起传递,任何打开链接的设备都能解码并显示内容。不需要账户,也不需要使用原来的浏览器。

如果清除浏览器数据,会发生什么? 现有的分享链接不会受到影响。它们不依赖浏览器中存储的任何内容,只依赖链接本身。清除浏览器数据只会删除浏览器为该设备上创建的粘贴内容保存的本地便利副本。

创建链接后可以编辑粘贴内容吗? 不可以。由于内容在创建时就嵌入链接中,任何更改都必须创建新链接。

粘贴内容过期后会发生什么? 打开过期链接时,会显示内容已过期的消息,而不是原始文本。链接本身仍然存在;只是存储的过期时间戳一旦过去,链接就不再显示内容。

有大小限制吗? 没有固定的存储限制,但某些电子邮件客户端和消息应用可能会拒绝或截短过长的 URL,因此超大的粘贴内容更适合使用专门的文件分享工具。

参考文献

  1. "UTF-8." MDN Web 文档,Mozilla,https://developer.mozilla.org/en-US/docs/Glossary/UTF-8
  2. "Base64." MDN Web 文档,Mozilla,https://developer.mozilla.org/en-US/docs/Glossary/Base64
  3. "URL." MDN Web 文档,Mozilla,https://developer.mozilla.org/en-US/docs/Web/API/URL
  4. "Syntax highlighting." 维基百科,维基媒体基金会,https://en.wikipedia.org/wiki/Syntax_highlighting
  5. "Unix time." 维基百科,维基媒体基金会,https://en.wikipedia.org/wiki/Unix_time