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

更新时间:
复制 MD 格式

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

问题描述

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

问题原因

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

解决方案

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

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

程序文件的字符集编码

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

    • 在开发工具中查看,以Visual Studio Code为例。在VS Code窗口底部状态栏右侧可以查看当前文件的编码格式,如显示为UTF-8则表示编码已是UTF-8。

    • 在记事本中查看。在记事本窗口底部状态栏右侧可以查看当前文件的编码格式,如显示为UTF-8则表示编码已是UTF-8。

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

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

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

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

        警告

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

      2. 单击编码名称。

        编码名称位于VS Code窗口底部状态栏右侧(如当前显示为GBK)。

      3. 单击Save with Encoding

      4. 输入或选择UTF-8

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

    • 在记事本中更改。

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

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

      3. 单击是(Y)

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

网页的字符集编码

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>首页</title>
</head>

数据库的字符集编码

数据库的字符集编码

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

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. 在数据库上单击鼠标右键,单击表详情

      表详情页面中,可以查看各表的字符集信息。

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

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

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

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

      重要

      MySQL5.5.3以上版本才开始支持utf8mb4字符集。

    4. 单击保存变更

字段的字符集编码

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

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

    选中需要修改的字符型列(如user_name),下方扩展属性区域会显示该列当前使用的字符集

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

    说明

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

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

  4. 单击保存变更