在PHP项目中,MySQL最好使用哪种编码(collation)?俄文字符问题
大家好!我是PHP和MySQL的新手,遇到了显示俄文字符的严重问题。
我有一个简单的PHP注册表单。当用户输入俄语名字(例如“Иван”)时,它在数据库中保存为“?????”或“Р�ван”。我已经尝试了各种设置,但都没有帮助。
以下是我的数据库连接代码:
```php
$db = new mysqli('localhost', 'root', '', 'mydb');
$db->query("SET NAMES 'utf8'");
```
以及表结构:
```sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
) DEFAULT CHARSET=utf8;
```
数据插入方式如下:
```php
$name = $_POST['name'];
$stmt = $db->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
$stmt->execute();
```
通过echo输出时也是乱码。我听说需要为MySQL选择正确的collation,但有很多种:utf8_general_ci, utf8_unicode_ci,