我使用 PHP 创建 FAQ 表单,但它不显示 UTF-8 虽然 SQL 数据 utf-8_general_ci
我有 2 个文件:faq.php 和 index.php
恕我直言,有几个地方可能会导致问题:
使用表单对页面进行编码
<meta http-equiv="content-type" content=" text/html; charset=utf-8" />
表单本身的表单编码
<form accept-charset="utf-8">
SQL连接的编码
charset utf8;
将 HTML 标记添加<meta charset="utf-8" />
到head
每个页面的标记。
打开PDO
连接时,请确保客户端连接使用 UTF-8:
$db = new PDO("mysql:host=localhost;dbname=dbname",
'username', 'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
这也可以直接设置为,my.cnf
因此您不必为每个连接单独设置它:
[client]
default-character-set=utf8
您必须确保您的页面也是 utf8,即它必须包含<meta charset="utf-8">
标签。
您还应该检查您的数据库并确保数据存储正确。如果它来自非 utf8 源,如果您只是复制和粘贴,它可能会损坏。我通常做的是在上传到数据库之前使用一些文本编辑器将文本编码更改为 utf8。