当前位置

内部培训:错误网址的纠正分享商议

James Qi 在 2023年2月20日 - 17:07 提交

错误网址编码

这个周末花了一些时间找到和解决了两种错误网址的问题,今天星期一上班赶紧与相关项目的运营和程序同事进行了分享商议,现在把要点放在下面:

一、发现错误网址的现象:

  • 百度点击搜索结果到找不到的页面或者错误的页面
  • 百度快照中错误的乱码
  • Drupal日志中的404中发现
  • Apache/Nginx日志中的404中发现
  • Cloudflare日志中发现
  • Google Search Console中发现

二、产生错误网址的原因:

  • 对网址编码urlencode解码urldecode的处理不对,可能重复多次处理
  • 对多字节字符(例如:中日韩文、Emoji等)编码的处理不对,应该都是用UTF-8编码

三、解决错误网址的办法:

  1. 找到错误编码的规律,确定错误编码转正确编码的规则
  2. 对错误的编码使用适当的PHP函数按正确编码进行转换
  3. 判断转换后的字符是否为我们网站数据库中应有的字符
  4. 如果是应用的字符,再301跳转到正确的页面
  5. 如果不是应有的字符,再尝试其它编码转换或者输出404

四、参考链接:


补充:目前找到的一些编码转换:

  • UTF-8 转 Windows-1252
  • UTF-8 转 GBK
  • UTF-8 转 ISO-8859-1,再GBK 转 UTF-8
  • UTF-8 转 Windows-1252,再GBK 转 UTF-8
  • UTF-8 转 Windows-1252,再UTF-8 转 Windows-1252
  • UTF-8 转 Windows-1252,再UTF-8 转 Windows-1252,再UTF-8 转 Windows-1252
  • UTF-8 转 Windows-1252,再UTF-8 转 Windows-1252,再UTF-8 转 Windows-1252,再UTF-8 转 Windows-1252
  • UTF-8 转 Windows-1252,再UTF-8 转 Windows-1252,再UTF-8 转 Windows-1252,再UTF-8 转 Windows-1252,再UTF-8 转 Windows-1252
  • UTF-8 转 Windows-1252,再UTF-8 转 Windows-1252,再UTF-8 转 Windows-1252,再UTF-8 转 Windows-1252,再GBK 转 UTF-8
  • UTF-8 转 Windows-1252,再UTF-8 转 Windows-1252,再GBK 转 UTF-8
  • 简体 转 繁体
  • +号 转 空格%20

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。