PHP与MySQL搭配时,哪种编码和排序规则(collation)最合适?
大家好!我是一名PHP初学者,在MySQL编码和排序规则(collation)的选择上遇到了问题。翻遍了各种论坛,但说法不一。有人推荐`utf8_general_ci`,有人推荐`utf8_unicode_ci`,最近还听说了`utf8mb4`。
我有一个简单的PHP网站,带有一个反馈表单,用户可以留言。我注意到有时俄文字母会显示为乱码(例如"Привет!")。经过长时间折腾,发现是表的编码问题。
我创建表的方式如下:
```php
exec("
CREATE TABLE comments (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
message TEXT
) DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
");
?>
```
插入数据的方式如下:
```php
prepare("INSERT INTO comments (username, message) VALUES (?, ?)");
$stmt->execute([$_POST['user