• 浏览器乱码问题的具体解决


    浏览器显示乱码问题


    首先,在介绍浏览器乱码问题之前。我说一下关于文件编码和解码的问题。
    假设我使用EditPlus编辑文本,设置Editplus的默认编码环境为ANSI。新建文本,输入:“你好中国”,文件另存为ANSI格式。文件名称为test.txt。

    然后,我打开EditPlus,改变EditPlus的默认编码环境为Unicode(详细步骤问度娘就可以)。文件-->打开,打开test.txt文件,发现乱码问题(此处,我自己也有个疑问。我在笔记本上測试时出现乱码。但在台式机測试时,有时候不出现乱码,产生这个问题的解决办法可能和系统环境有关,也可能和EditPlus的版本号有关。我没有再深究。假设有明确的朋友,评论一下,谢谢)。

    EditPlus打开test.txt文件,使用的是Unicode编码规则来解码ANSI编码的字符。通过补充知识的内容,显而易见会产生乱码问题。

    补充知识:
    1.“你好中国”相应的ANSI编码为“C4E3 BAC3 D6D0 B9FA”。


    “你好中国”相应的Unicode编码为“u4F60 u597D u4E2D u56FD”
    2.文件是保存在硬盘上的,而硬盘仅仅能以2进制(通过是否被磁化来区分是1还是0)存储文字等信息,test.txt在硬盘上存储的数据域为“C4E3 BAC3 D6D0 B9FA”的2进制表示形式。

    以下,開始介绍浏览器乱码问题,我是用的是phpstrom集成开发环境(默认编码环境为utf-8)
    编辑test.php文件代码例如以下:
    <?php
        echo "汉字会产生乱码";
    ?

    >
    通过360浏览器訪问test.php文件,显示结果例如以下:
    ”姹夊瓧浼氫骇鐢熶贡鐮�“(出现了乱码问题)

    分析产生乱码原因:
    右击产生乱码的网页,然后点击“编码”,发现此时360浏览器编码为“中文(简体)GBK”,使用GBK解码utf-8编码的字符文件,当然会产生乱码。

    解决方法:

    1.改变浏览器的编码。点击编码后,选择uft-8,输出的结果显示正常:”汉字会产生乱码“。

    2.在设置header charset解决这个问题。test.php文件里加入一行设置编码的代码,例如以下:
    <?php
        header("Content-type:text/html;Charset=utf-8");
        echo "汉字会产生乱码";
    ?>
    (显示结果是正常的)
    使用浏览器自带的开发者工具(F12),得到响应头中的信息:
    HTTP/1.1 200 OK
    X-Powered-By: PHP/5.3.10
    Content-type: text/html;Charset=utf-8
    Server: PhpStorm 7.1.3
    Content-Length: 21
    此时发现360浏览器编码为Unicode(utf-8)。也就是说360浏览器依据响应头中的Charset=utf-8自己主动选择编码为utf-8来解码发送过来的uft-8编码的字符,显示结果正确。









  • 相关阅读:
    ThinkPHP5查询-select与find理解
    Gradle一分钟实现Spring-MVC
    CentOS 7 之Helloworld with c
    Python3学习之二Django搭建
    Python3学习之一环境搭建
    CentOS 7 之安装Mono&MonoDevelop
    CentOS 7 之Cisco Anyconnect Secure Mobility Client
    CentOS 7 之Shell学习笔记
    CentOS 7 之安装X Window System
    CentOS 7 之几个新特性(转)
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5100975.html
Copyright © 2020-2023  润新知