You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS中如何向十六进制转义序列中添加单个Byte字节

哈希运算演示

你遇到的问题核心是JavaScript的转义序列仅在代码静态解析阶段生效,运行时手动拼接的\x不会被识别为转义前缀,只会作为普通的反斜杠和x字符处理,所以会出现拆成4个独立字符的情况。不需要拼接转义序列,直接通过字节数值生成即可,两种常用实现方案如下:

方案1:使用Uint8Array处理字节流(推荐,适合哈希运算场景)

哈希运算通常直接操作原始字节,用TypedArray可以避免字符串编码带来的额外问题:

// 你分开得到的两位十六进制字符
const hexFirst = '2'
const hexSecond = '5'
// 转成对应字节的十进制数值
const byte = parseInt(hexFirst + hexSecond, 16)

// 拼接原有字节
const originBytes = new Uint8Array([/* 原有字节内容 */])
const resultBytes = new Uint8Array(originBytes.length + 1)
resultBytes.set(originBytes, 0)
resultBytes[originBytes.length] = byte

后续直接拿resultBytes做哈希运算即可,不需要转成字符串。

方案2:字符串场景直接生成对应字符

如果一定要操作字符串,用String.fromCharCode直接将字节数值转为对应字符:

const hexFirst = '2'
const hexSecond = '5'
const byte = parseInt(hexFirst + hexSecond, 16)
const targetChar = String.fromCharCode(byte)
// 拼接后得到的就是单字符%,不会拆成4个字符
const resultStr = originStr + targetChar

内容的提问来源于stack exchange,提问作者Sénéchal Julien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:39:03