在navicat中双击text/blob字段单元格后点击工具栏“0x”或“hex”按钮可切换至十六进制视图,仅blob类及部分text变体(如mediumtext)支持;若按钮灰显,常见原因包括字段类型非二进制、值为空或navicat版本过低(建议16+)。

Navicat里怎么把TEXT/BLOB字段切到十六进制视图
直接在数据网格中双击该字段单元格,再点工具栏上的十六进制按钮(图标是“0x”或“HEX”),就能切换显示模式。不是所有字段都支持——只有BLOB、TINYBLOB、MEDIUMBLOB、LONGBLOB和部分TEXT变体(如MEDIUMTEXT)能正常激活该按钮;纯VARCHAR或TEXT若内容可打印字符过多,可能灰显不可点。
为什么点了十六进制按钮没反应
常见原因有三个:
- 字段类型不是二进制类:比如定义的是
TEXT但实际存的是普通中文,Navicat可能默认走文本解析路径,不触发十六进制渲染 - 值为空或全是空格/换行符:这类内容在十六进制视图下可能只显示
00 0a 0d等控制字节,视觉上像“没变化” - Navicat版本限制:旧版(如 Navicat 12 及更早)对
JSON或ENUM字段旁的十六进制按钮支持不稳定,升级到 16+ 更可靠
导出时启用“使用十六进制”和界面点十六进制是两回事
界面点击十六进制只是临时查看,不影响数据本身;而导出 SQL 时勾选“使用十六进制”,会把字段值写成0x48656C6C6F这种字面量——这会影响兼容性,尤其对 MySQL 5.7 及更早版本。别混淆这两个开关:一个管看,一个管导出格式。
十六进制视图下编辑内容要小心
在十六进制编辑器里手动改字节,保存后会原样写回数据库,不做任何编码校验。容易踩的坑包括:
- 修改长度后没同步更新字段长度定义,导致后续插入被截断
- 把 UTF-8 中文的三字节序列(如
e4 bd a0)错改成e4 bd 00,读出来就是乱码 - 在
MEDIUMTEXT字段里用十六进制视图粘贴超长 hex 字符串(比如 10MB 的0x...),Navicat 可能卡死或静默丢数据
真正需要编辑二进制内容时,优先考虑导出为文件→用专业十六进制编辑器(如 HxD、010 Editor)处理→再以 BLOB 形式重新导入,比在 Navicat 里硬改更可控。











