网页出现乱码怎么解决
网页乱码这事儿,网页十有八九是出现编码格式没对上。你打开一个网页,乱码满屏的解决“锟斤拷”或者“é”,第一反应可能是网页电脑坏了,其实不是出现。就是乱码浏览器用A规则解码,网页却用B规则编码,解决两边鸡同鸭讲。网页
最常见的出现元凶是UTF-8和GBK的冲突。国内老站点,乱码尤其是解决一些企业官网、政府网站,网页后台数据库可能还是出现GBK编码。而现代浏览器默认优先用UTF-8解析。乱码你访问这种老站点,浏览器按UTF-8去读GBK的数据,读出来的自然是一堆乱码。有个朋友做外贸,打开一个国内供应商的网站,全是“日本诔,他以为对方发的是日文,差点用翻译软件。其实就是GBK被当成UTF-8读了。
解决第一步,手动切编码。在浏览器地址栏旁边,或者右键页面,找到“编码”或“更多工具”里的“字符编码”。Chrome里是“更多工具”->“编码”->“简体中文(GB2312)”或“中文(GBK)”。切换之后,页面一般立刻恢复正常。火狐的话,在菜单栏“查看”->“文字编码”里。这个操作治标,但能应急。
要是手动切了还乱,或者页面里某些字正常、某些字是方块、问号,那情况就复杂些。可能是网页本身用了UTF-8,但服务器返回的HTTP头里写了GBK。这时候浏览器被头信息骗了,按GBK解码UTF-8的内容。你手动切到UTF-8,反而可能被服务器端的强制脚本又改回去。遇到这种,干脆用浏览器的“禁用缓存”硬刷新,Ctrl+F5,有时候能绕过服务器端的错误头。
还有一种情况,页面源码里写的是UTF-8,但实际文件保存成了GBK,或者反过来。这种属于网页作者自己搞混了。你手动切换编码,可能切到GBK显示正常,但刷新一下又变乱。根治办法是让网站管理员把文件另存为正确的编码,或者统一数据库和页面的charset声明。普通用户没法改服务器,只能将就着手动切。
如果你经常访问某个特定网站,每次都要手动切,烦不烦?有个土办法,用浏览器插件强制指定该网站的编码。比如Chrome的“Set Character Encoding”扩展,可以给特定域名固定编码规则。装上之后,访问那个老网站,插件自动按GBK解码,再也不用每次点两下。这算是个懒人方案,但管用。
最后说个反直觉的:有时候乱码不是编码问题,是字体问题。页面显示一堆方框或者空白,但复制出来文字是正常的。那是你系统里缺字体,或者CSS指定了一个不存在的字体族。这种情况跟编码无关,换浏览器或者装个中文字体包就行。别一看到乱码就去调编码,先看看是不是所有文字都变方块,如果是,那多半是字体坑了你。
真遇到乱码,别慌,先右键切编码,切两三次基本能解决。解决不了就换浏览器试,再不行就放弃那个网站——反正内容也不值得你折腾。乱码这事,本质上是网络世界的方言隔阂,你多学几门“方言”就能听懂,但有些网站自己都说不清自己说的是哪家话,那就没法子了。