网站程序编码问题导致网页出现乱码

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

本文为您介绍访问网站页面时,网页中出现乱码问题的可能原因和解决方案。

问题描述

访问网站页面时出现乱码现象。

问题原因

程序文件、网页、数据库三者字符集编码不一致导致出现乱码问题。

解决方案

将程序文件、网页、数据库三者字符集编码设为一致。

大多数编程环境的字符集都使用了UTF-8(Unicode Transformation Format)编码,可以支持全世界几乎所有国家的语言,因此推荐您使用UTF-8编码。本文以PHP和MySQL的组合介绍如何设置程序文件、网页、数据库三者的字符集编码同为UTF-8,以避免乱码问题。其它语言及字符集编码的设置方式与此类同。

程序文件的字符集编码

  1. 查看程序文件的字符集编码是否为UTF-8。您可以通过以下任意方式来完成。

    。在开发工具中查看,以Visual Studio Code为例。

    image

    。在记事本中查看。

    image

    。在其它文本工具中查看,如NotePad++、EditPlus、UltraEdit、Sublime等。

  2. (条件必选)如果程序文件的字符集编码不是UTF-8,按以下步骤将其改为UTF-8。您可以通过以下任意方式来完成。

    • 在开发工具中更改,以Visual Studio Code为例。

      1. 备份文件的内容到其它位置的文件中。

        警告

        更改字符集编码前务必备份文件,防止文件内容发生不可逆的损伤。

      2. 单击编码名称。

        image

      3. 单击Save with Encoding

        image

      4. 输入或选择UTF-8

        image

      5. (可选)此时如果文件内容发生乱码,从备份文件中复制内容到此文件中,覆盖原内容。

    • 在记事本中更改。

      1. 单击菜单中的文件(F) > 另存为(A)image

      2. 编码(E):部分的下拉列表中选择UTF-8,单击保存(S)

        image

      3. 单击是(Y)

        image

    • 在其它文本工具中更改,如NotePad++、EditPlus、UltraEdit、Sublime等。

网页的字符集编码

image

数据库的字符集编码

数据库的字符集编码

查看数据库的字符集编码。

SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'your_database_name';

修改数据库的字符集编码。

ALTER DATABASE 'your_database_name' CHARACTER SET 'utf8';

表的字符集编码

  1. 查看表的字符集编码

    1. 登录DMS中的MySQL数据库。更多信息,请参见通过DMS Web版本登录数据库

    2. 在数据库上单击鼠标右键,单击表详情

      image

  2. (条件必选)如果表的字符集不是utf8,按以下步骤将其改为utf8。

    1. 在数据库上单击鼠标右键,单击查询

      image

    2. 在表上单击鼠标右键,单击编辑表结构

      image

    3. 字符集下拉选项中选择utf8utf8mb4

      image

      重要

      MySQL在5.5.3以上版本才开始支持utf8mb4字符集。

    4. 单击保存变更

字段的字符集编码

一般不会设置字段的字符集编码,它会自动跟随表的字符集编码。若有设置的需要,可参照如下步骤。

  1. 在编辑表界面单击列信息

    image

  2. 单击待修改的字符型的列,即可看到当前列所使用的字符集。

    说明

    非字符型不涉及字符集编码。

  3. 单击字符集下拉选项框,选择utf8utf8mb4

    image

  4. 单击保存变更