次の文字セットの問題があります。
- フォームを介して、ユーザーは名前情報を追加します (åäö のような文字が一般的です) - 今のところ問題ありません
- 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;
}