网页字体乱码怎么修复
回答 6
原因分析
网页字体乱码,99%的情况是字符编码问题。别慌,先搞清楚是哪种乱码。通常分两类:一类是显示成方框、问号、或者一堆乱码字符;另一类是内容能看但个别字体变方块。前者是编码不对,后者是字体缺失。
排查步骤
第一步,先看浏览器设置。Chrome用户点地址栏右边的菜单,进“设置”->“高级”->“语言”,确认网页默认编码是Unicode(UTF-8)。如果被改成了GB2312或者ISO-8859-1之类的,直接改回来。Firefox用户看“选项”->“常规”->“语言和外观”->“字体”,把默认编码也设成UTF-8。
第二步,检查网页源代码。右键点击页面空白处选“查看源代码”,看头部有没有``或者``。如果没有,或者写的是其他编码,那问题就在服务器端。这时候你可以手动切换浏览器编码:Chrome点地址栏右侧的“编码”按钮(如果没显示,去工具栏设置里找),选UTF-8或者自动检测。一般能临时解决。
第三步,如果是字体显示成方块,那是你的电脑缺少对应字体。比如网页用了苹方、思源黑体之类的,你系统里没有。Windows用户去控制面板“字体”里看有没有安装。Mac用户去“字体册”查。没有的话,去Google Fonts或者GitHub上下载安装。实在懒得折腾,去Stylus之类的浏览器扩展里写个规则,强制用系统默认字体显示。
常见场景处理
- 网页全是乱码但其他网站正常:大概率是网站本身编码设置错误。直接报告给网站管理员,让他们检查服务器配置。如果是你自己开发的网站,去Nginx或Apache的配置里设`add_header Content-Type text/html; charset=UTF-8;`。
- 只有中文乱码,英文正常:90%是GBK和UTF-8的混用问题。网站数据库用了GBK,但页面声明了UTF-8。去数据库连接配置里加`charset=utf8`,或者改页面声明。
- 浏览器显示正常,但复制粘贴出来乱码:这是浏览器渲染层和文本层的差异。用开发者工具检查元素,看实际DOM内容是不是乱码。如果是,那就是服务器返回的原始数据有问题。
终极方案
如果以上都不行,打开浏览器的开发者工具(F12),切到“网络”标签,刷新页面,找到主文档请求,看响应头里的Content-Type字段。正常应该是`text/html; charset=UTF-8`。如果是`text/html; charset=gbk`或者没声明,那就基本确认是服务器问题了。你可以装个“Charset”扩展来临时覆盖编码,但治标不治本。
最后说句扎心的:遇到过太多人乱码是因为浏览器插件冲突。先把所有插件禁用,一个个排查。别问我为什么知道,前公司有个同事折腾了两天,最后发现是某翻译插件在捣乱。
换个浏览器试试?
换编码或者重装字体
清缓存试试 
清除浏览器缓存试试
清缓存或换浏览器试试