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

为何Xbox360 .CON文件与Chrome SQLite存储中字符串含空字节?

字符间空字节的真相:UTF-16LE编码

这其实是**UTF-16LE(小端序UTF-16)**编码的典型表现,我给你一步步拆解清楚:

先解码你的示例

你给出的十六进制串:

22007700730073003a002f002f0067006100740065007700610079002e0064006900730063006f00720064002e00670067002200

按照UTF-16LE规则解码后,会得到完全正常的字符串:"wss://gateway.discord.gg"——是不是一下子就对应上了?

为什么会出现空字节

UTF-16是一种双字节编码方案,设计目的是覆盖全球几乎所有字符(包括中文、emoji、特殊符号等)。它的核心特点是:

  • 普通ASCII字符(0x00-0x7F范围内的字节,比如英文字母、基础符号)在UTF-16LE中会被存储为「原ASCII字节 + 0x00字节」。
  • 这里的「LE」是Little-Endian(小端序)的缩写,意思是存储字节时低字节在前、高字节在后。因为ASCII字符的高字节本身就是0,所以就出现了你看到的“每个有效字符后面跟着一个空字节”的现象。

为什么不同场景都会遇到

  • Xbox 360的.CON文件:微软整个生态(从Windows到Xbox)长期默认用UTF-16作为多语言文本的标准编码,原生游戏文件采用它可以轻松支持多语言本地化,避免早期单字节编码只能覆盖少量字符的问题。
  • Chrome localStorage的Blob字段:部分前端应用会选择把字符串以UTF-16格式写入Blob存储,可能是为了兼容特定字符集需求,或是某些框架/扩展的默认存储逻辑。当你用SQLite浏览器查看Blob类型字段时,看到的是原始二进制数据,自然就会显现出这些空字节。

验证小技巧

你可以用任意十六进制编辑器的编码转换功能,选择「UTF-16LE」解码这段字节,就能直接看到正常的文本内容,快速验证这个结论。

内容的提问来源于stack exchange,提问作者Brian Leishman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:14:44