文本转ASCII转换器

在文本框里粘贴任意文字,本页把每个字符换成对应的 ASCII 或 Unicode 码点,支持十进制和十六进制两种输出,并标出控制字符。所有转换在浏览器里做,不上传服务器。

使用方法

文本转ASCII转换器把字符变成数字码点,只要四步:

  1. 在「输入文本」框粘贴或输入要转换的内容,如 Hi!。中文、emoji、符号都能转,不限于英文。
  2. 选「输出进制」:十进制(72 105 33)或十六进制(48 69 21)。
  3. 点「转换」,或在文本框按 Ctrl/Cmd + Enter。结果进下方文本框,字符之间用空格分开。
  4. 点「复制结果」整段拿走;想还原示例按「载入示例」。

文本转ASCII转换器能解决什么

它把「这个字到底是什么码」变成一行可读数字,适合三类场景:

  • 调试与对齐:写解析器、协议或硬件串口时,要确认某个字符到底发的是 72 还是别的,直接粘进来转十进制就看清。
  • 学习编码:理解 ASCII 表(A=65、a=97、空格=32)和「中文超出 ASCII、落在 Unicode 码点」的差别,直观看到「你=20320」。
  • 控制字符排查:文本里混了换行(10)、制表(9)等不可见字符时,码点会暴露出来,方便清掉或转义。

本页不做的事:不做 Base64、URL、十六进制字符串互转(那是别的工具);不做字符本身的编码字节(UTF-8 多字节)输出,只给码点;不把码点再拼回二进制。需要字节级请用对应编码工具。

原理和变量

① 用了哪个具体函数:核心是 String.prototype.codePointAt(0) 取每个字符的 Unicode 码点,再用 toString(10) 或 toString(16) 转成十进制或十六进制字符串。用 codePointAt 而非 charCodeAt,是为了正确表示辅助平面字符(如部分 emoji)。

② 关键参数为什么这样取:区分十进制与十六进制,是因为程序员看内存/协议常看十六进制(48 比 72 更贴近字节直觉),而普通人读 ASCII 表习惯十进制。两种都基于同一个码点,只是显示进制不同。

③ 遵循哪个标准:码点来自 Unicode 标准;ASCII 是 Unicode 的前 128 个码点(0~127),与 US-ASCII 一致。十六进制用 0-9、A-F,不带 0x 前缀(输出更紧凑,需要前缀可自行加)。

④ 输入怎么变成输出:H 的码点 72 → 十进制「72」、十六进制「48」;i 是 105 / 69;! 是 33 / 21。所以「Hi!」十进制输出 72 105 33,十六进制 48 69 21。中文「你」码点 20320,十进制 20320、十六进制 4F60。

⑤ 边界与阈值:空输入输出空,不报错;换行、制表等控制字符(码点 0~31)正常出数字并标注。码点范围理论到 0x10FFFF,超出会提示无法表示;本页逐字符处理,超长文本也按序转换。

⑥ 常见误用的正确解释:把「中文转 ASCII」理解为能压成 0~127 是错的——中文根本不在 ASCII 表里,本页给的是它的 Unicode 码点(如 20320),不是 ASCII;十六进制 4F60 别漏看字母;charCodeAt 遇辅助平面会拆两半,本页用 codePointAt 避免。

完整示例(数值仅作演示)

保持演示输入 Hi!,十进制输出 72 105 33,十六进制 48 69 21。

  • H → 十进制 72 / 十六进制 48。
  • i → 十进制 105 / 十六进制 69。
  • ! → 十进制 33 / 十六进制 21。
  • 若输入「你」:十进制 20320 / 十六进制 4F60(超出 ASCII 0~127,显示 Unicode 码点)。
  • 若输入「A B」(含空格):十进制 65 32 66 / 十六进制 41 20 42,空格码点 32 也在其中。

这五组与页面默认文本框、下方对照表第 8 行(H=72)一致,可三处核对。

输入范围与对照表

文本转ASCII转换器的对照表列出常见字符的十进制与十六进制码点,帮你快速对照:

结果边界和舍入

输出性质:结果是码点数字串,十进制为 0-9,十六进制为 0-9 与 A-F,字符间以空格分隔。需要 0x 前缀或逗号分隔可导出后自行替换。

什么时候会提示:输入为空时输出空,不报错;遇到无法用单个码点表示的极端组合(极少)会提示。控制字符(0~31)照常出数字,不会因不可见而丢字符。

中文与 emoji:中文、emoji 超出 ASCII 0~127,本页给其 Unicode 码点(如「你」20320 / 4F60)。辅助平面 emoji 用 codePointAt 取单个码点,不会被拆成两半。

结果用途:这是码点对照,不是字节流(UTF-8 下中文占多字节,本页不展开字节)。要字节级编码请用对应编码转换工具。

常见问题

中文也能转吗?

能,但中文不在 ASCII 表里。本页给的是它的 Unicode 码点,例如「你」是十进制 20320、十六进制 4F60,而不是 0~127 的 ASCII 值。

十进制和十六进制怎么选?

看用途。读 ASCII 表、做教学用十进制(72);看内存、协议、字节用十六进制(48)更贴近直觉。两者基于同一码点,仅显示进制不同。

换行和空格怎么显示?

空格码点 32(十六进制 20)、换行码点 10(十六进制 0A),都是控制/空白字符,照常出数字,方便你排查文本里混进的不可见字符。

为什么不用 charCodeAt?

charCodeAt 遇到辅助平面字符(部分 emoji)会拆成两个代理码元,得到错误值。本页用 codePointAt 取完整码点,结果更准确。

结果能反推回文字吗?

本页只做「文本→码点」单向。要码点转回文字请用对应的「ASCII/码点转文本」工具,把数字按空格拆开再还原。

十六进制字母大小写?

本页统一输出大写 A-F(如 4F60)。需要小写可自行小写化,数值不变。

超长文本会卡吗?

逐字符处理,一般几千字无压力。极长文本建议分段粘贴;结果按输入顺序一一对应,不会错位。

我的输入会被保存或上传吗?

不会。全部在浏览器内转换,刷新即清空;转换时不发任何网络请求。

相关工具