原文、字节、候选结果的验证关系,强调可逆不等于确认来源
阅读口径

本文保留原字符串;操作在副本上进行,候选结果需由来源证据核对。

一个假设的故障顺序

演示场景:发送端输出 UTF-8 字节,接收端却按 GBK 解释,再把解释后的文字存成 UTF-8。此时新文件编码可能是正确的 UTF-8,里面的内容却已变成错误字符。

规范参考:WHATWG:Encoding Standard。操作场景与排查建议为本站说明。

重新打开与转存不同

重新按编码打开,是从未修改的原字节再次解释;另存为某编码,是把当前已显示的文本再次编码。若当前文字已错,直接另存为 UTF-8 只会稳定保存错误内容。

规范参考:WHATWG:Encoding Standard。操作场景与排查建议为本站说明。

编码名也要记录环境

网页使用 WHATWG 的编码算法;Python 编解码器有自己的实现与标签。对于本样本,Python 的 GBK 和 GB18030 都产生同一候选字节;不要由此推断二者对所有输入都等价。

可执行检查单

  1. 01保留原始文件,确认是否曾经保存过错误显示。
  2. 02先尝试在副本上按来源声明重新读取。
  3. 03只在证据支持时执行逆转换,并保存操作记录。

一个常见问题

GB18030 能替代所有 GBK 修复命令吗?

不应这样假设。处理范围、版本与非法字节行为可能不同;要使用真实处理链中的实现,并验证完整样本。

本页结论

发生过错误保存时,修复对象是文本处理链;只改一个编码标签通常不够。