新华社
UTF-8 是一种变长编码,一🌅个字符可能由多个字节组成;GBK 和 GB18030 则采用另一套字节解释规则。当程序先把 UTF-8 内容转成错误🔥的中文编码,或者把已经解码的文本再次转码时,原本的字符就会变成看似汉字、实际没有语义的组合。
如果乱码已经以错误字节写入数据库,修复可能需要按照实际发生过的转换路径逆向处理;如果数据库只保存了乱码后的字符,而原始字节早已丢失,🎯则只能依靠备份、缓存、页面快照或业务上下文推断,无法保证完整还原。
若较长的“馃崋馃崋馃📌崋馃崙馃崙”与短字符串出现在同一字段中,应先比较两者的原始来源和字符长度,再判断它们是否只是同一批表情符号的不同组合,不能仅凭外观认定为某个固定词语。
只有乱码文🔍本而没有原始来源时,最稳妥的做法是保留原样、标记编码异常,并向内容提供者索取原文🍀或截图。不要把猜测出来的字符写回生产数据,也不要为了搜索收录而把乱码扩展成不存在的解释。