全程UTF-8:如何配置PHP、MySQL和Web服务器以正确处理西里尔字母和Unicode
大家好!我是一名初学 PHP 开发者,编码问题让我很头疼。网站是用 PHP 写的,数据库是 MySQL,服务器是 Apache。一切看似正常,但只要用户在表单中输入俄语字母,噩梦就开始了:数据库里存的是乱码,比如「Привет」,而页面上显示时则出现问号或空白方块。
我试过在 HTML 头部添加 ``——没用。试过在 PHP 中写 `header('Content-Type: text/html; charset=utf-8');`——也不是万能药。MySQL 中表使用的是 `utf8_general_ci`,但数据仍然损坏。以下是我的代码示例:
```php
query("INSERT INTO users (name) VALUES ('$name')");
// 输出
$result = $db->query("SELECT name FROM users");
while ($row = $result->fetch_assoc()) {
echo $row['name'];
}
?>