/* Auto ads 与同意门控都依赖这里的 client meta —— 缺了它 consent.js 的 loadAds() 会直接 return,本页永远不加载 AdSense(第 30 轮实测发现中文 324 页全缺) */
aibox

编码与数据工具:Base64 与 JSON 格式化

这个大类现在有两个工具:Base64 编解码与 JSON 格式化/校验。它们做的是同一件事的两半 —— 把一个值变成机器正好期待的形状,再把它读回来。

编码与数据大类下的工具

编码与解码

  • Base64 编解码 —— 文字与 Base64 双向互转,先经 UTF-8 字节,所以中文、日文和 emoji 都不会出错。接受缺失的 = 填充、换行与空格、URL-safe 表,并逐项说明替你处理了什么;解出来的字节不是文本时给出字节数与十六进制视图,而不是糊一串替换字符。
    浏览器端 · 不限次数

数据与格式

  • JSON 格式化 / 校验 —— 按 2 个空格、4 个空格或 Tab 重新排版,一键压缩成一行;不是合法 JSON 时给出行列位置和原因,并提示重复键与大整数这类会改变数据的坑。
    浏览器端 · 不限次数

工具页地址不随分类改变:分类只是导航,换分类不会让任何链接失效。 这也是本站把分类与 URL 分开的原因 —— 已经进过搜索引擎和收藏夹的地址,不该因为一次归类调整就跳转或失效。

为什么这件事应该放在浏览器里做

把一段数据粘进某个网站,通常意味着把它发到别人的服务器上。对 JSON 格式化和 Base64 解码来说,这笔交易很不划算: 两个操作都只是对你手里的值做纯运算,完全不需要服务器;而那段文本往往是你屏幕上最敏感的东西 —— 带 token 的接口响应、 带连接串的配置文件、带客户标识的日志行。

所以这个大类里的工具全部在你已经打开的页面里跑:没有上传、没有请求、没有日志,因为根本没有东西要发出去。 每个页面只 import 一份纯函数模块。副作用是它没有次数限制 —— 一次计算不离开浏览器,对我们就是零成本; 断网之后它照样能用。

这两个工具拒绝替你猜的事

这个类目里最常见的功能,恰恰是我们故意不做的那个:默默决定一个含糊的值到底是什么意思。 一个会自动删掉多余逗号、或把单引号改成双引号的格式化器,会给你一份"在你编辑器里看着完全正确、 发出去照样报错"的文件,同时把真正的问题藏起来。一个替你选字母表的编码器,会给你一串在本地解得好好的、 放进 query string 就崩掉的字符串。

所以这两个工具选择把假设写出来。JSON 格式化 / 校验在语法错误时给出 行号、列号和一句人话解释,并且会专门提示两种即使 JSON 合法也会改变你数据的情况:重复键(所有常见实现都只保留最后一个) 与超出 253 − 1 的大整数(一个二十位的 ID 在任何程序读到它之前就已经被四舍五入了)。 Base64 编解码先经 UTF-8 字节,所以中文、日文与 emoji 能完整转回来, 并接受缺失填充、换行与 URL-safe 表三种形态;当解出来的字节不是文本时,它给你字节数与十六进制视图, 而不是糊一串替换字符了事。

这个大类接下来会补什么

计划很短,而且刻意不花哨:调试时真正会用到的那几个转换,每一个都能用浏览器原生 API 完成, 不需要我们的任何数据。

  • URL 编解码 —— 同一个问题的另一半:一个值要活着穿过 query string,而默认规则下有几个字符活不过去。
  • 哈希(SHA-256 等) —— 用浏览器自带的 Web Crypto API,校验文件有没有完整送达。
  • CSV ↔ JSON —— 数据最常以它到达,而引号规则能难倒随便写的解析器。
  • UUID 与 JWT —— 生成标识符,以及在不信任签名的情况下读出 token 里的声明。

每一个都是先有中英文两版页面、才出现在这个列表里。所以这一页现在只列两个工具 —— 指向还不存在的东西不是路线图,是空头支票。

该用哪一个

  • 一串看着像随机字母的字符串,想知道里面是什么?Base64 编解码:它先经 UTF-8 字节,接受缺填充、换行和 URL-safe 表,并在"合法 Base64 但不是文本"时明确告诉你。
  • 一段 JSON 解析不了,想知道错在哪?JSON 格式化 / 校验:给出行号、列号和一句人话原因,并附带重复键与大整数的提示。
  • JSON 合法但挤在一行看不下去? 同一个工具:选 2 空格 / 4 空格 / Tab 后点格式化;需要贴回请求体时用压缩。
  • 日志里的数字其实是个日期? 那属于日期与时间大类:用时间戳转换,它会说明按哪个单位读的。

站内其它内容

这一页处理"在路上"的值;站内其它页面回答的是别的问题。

常见问题

我粘的 JSON 会被上传吗?
不会。这个页面只 import 一份纯函数模块,解析、排版、压缩、下载全部发生在你已经打开的页面里:没有发往服务器的请求,没有日志,关掉标签页粘贴的内容就没了。也因为没有服务器参与,它不限次数。
这个大类为什么不叫"开发者工具"?
因为"开发者工具"描述的是使用者是谁,而不是工具做什么,而且它没法安置那些跟代码无关的用法 —— 邮件头里的 Base64、从 App 导出的 JSON、别人发来的 CSV。"编码与数据"说的是这里真正在做的事:把一个值变成别的东西正好期待的形状,再变回来。
Base64 算加密吗?
不算,把它当加密是很危险的误解。Base64 只是一种可逆编码,作用是让任意字节穿过"只能传文本"的通道;任何拿到这串字符的人都能一步解回去。页面里把这一点写明了,也写明了它接受了哪种填充、换行与字母表,让你能分清"编码"和"加密"。
格式化器会顺手帮我把 JSON 修好吗?
故意不会。悄悄删掉多余逗号、或把单引号改成双引号,会让文件在这里看着正确、发到程序里照样失败,同时把真正的问题盖住。这个工具给出行号、列号和原因,至于那段数据本来应该是什么形状,只有你知道。
解析大 JSON 会不会卡住页面?
输入很大时它会先把"正在处理"画到状态栏上,然后把计算放到下一个宏任务里执行,所以你不会面对一个毫无反应的页面。全部计算仍在本机完成,不上传、不等待网络。

这个大类下的工具全部跑在你自己的浏览器里:你输入的内容不会发给我们, 页面上的广告是它们的收入来源。另见隐私说明