Avatar ·

在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,