数据库中出现问号尤其需要谨慎判断:如果只是客户端显示错误,原始数据可能仍然完整;如果数据写入数据库时已经被问号替换,原字符通常👍无法通过再次选择编码恢复。因此,应先使用另一种客户端或导出原始字段进行核对。
如果只有某个页面或某批数据异常,可先查看浏览器开发工具中的响应头,再检查页面源文件和接口返回内容。不要仅通过浏览器菜单临时切换编码来掩盖问题;这种方式只适合确认原因🔑🍀,不能替代服务器和文件的正式修复。
新项目应尽量统一使用 UTF-8,并在文件导出、网页响应、接口文档、数据库连接和表格导入流程中明确写出编码要求。旧系统无法立即迁移时,则应记录每个输入源的实际编码,在系统边界处完成一次可靠转换,内部处理不要反复来回转换。
文本文件通常只保存字符对应的字节,并不一定在文件内部明确记录编码。一个文🎆件可以由 UTF🌅-8、Shift_JIS、EUC-JP、EUC-KR 或 CP949 写入,打开程序需要根据设置猜测或读取编码。如果判断错误,同一组字节就会被解释成另一组字符。
先复制一份原文件,使用支持选择编码的文本编辑器打开,依次尝试 UTF-8、Shift_JIS、EUC-JP、EUC-KR 和 CP949。不要只看某一行是否正常,应检查日文假名、汉字、韩文音节、标点和特殊符号是否整体合理。
应让三部分保持一致:页面实际保存编码、HTML 字符集声明、服务器返回的字符集。新页面通常统一使用 UTF-8,并避免同一页面混入未经转换的 Shift_JIS、EUC-JP 或 EUC-KR 片段。