我有以下字符集问题。
- 通过表单用户添加名称信息(像åäö这样的字符很常见) - 到目前为止没问题
- Mysqli 将名称添加到数据库 - 到目前为止没问题
- 在数据库中像åäö这样的字符显示为例如ö - 问题
- 当获取包含 ö 的名称信息并将其显示在页面上时,它们会正确显示,例如 åäö。
但是,我不认为在数据库中有像 ö 这样的字符看起来不错。
我的字符集问题在哪里?我的数据库排序规则是 utf8_swedish_ci,输入 MyISAM。
编辑,我的代码:
try {
// Create DB object
$db = Db::factory($this->type, $this->creds);
// Create a prepared statement
$sql = new Sql($db, 'user');
// This doesnt work $sql->("SET NAMES 'utf8'");
$sql->insert(array('firstname' => '?', 'surname' => '?', 'email' => '?', 'password' => '?'));
// Prepare the statement, bind the parameters and execute
$db->adapter()->prepare($sql);
$db->adapter()->bindParams(array('firstname' => $post['firstname'], 'surname' => $post['surname'],
'email' => $post['email'], 'password' => $encryptedPassword));
$db->adapter()->execute();
$this->sendUserData($post['email'], $password);
} catch (\Exception $e) {
echo $e->getMessage() . PHP_EOL . PHP_EOL;
}