コードの編集/更新:
これで問題が解決しました。
$con = new PDO("mysql:host=$hostname;dbname=XXXXX;charset=utf8", $dbusername, $dbpassword, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
データベースにキリル文字を入力しようとしています。PHP スクリプトは正常に接続し、データをデータベースに追加します。問題は、フォームがキリル文字を送信するたびに、データベースに "рты Ð´Ð»Ñ Ð¿Ð»Ð°Ð²Ð°Ð½Ð¸Ñ" のようにキリル文字が入力されることです。
どんな助けでも素晴らしいでしょう、ありがとう。
データベース照合は「utf8_general_ci」に設定されています。PHPファイルは「uft8」(hostgator host-ifが役立つ場合)として保存されます。
これをページの上部に持っています。
<?php header("Content-Type: text/html; charset=utf-8"); ?>
これをファイルのヘッダーに追加しました:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
データベースへの接続は次のようになります。
$con = new PDO("mysql:host=$hostname;dbname=XXXXX;charset=utf8", $dbusername, $dbpassword);
フォームの例:
<form name="form" id="form" action="/form.php" method="post" accept-charset="utf-8">
<input type="hidden" name="foo" id="foo1" value="<?php echo $foo1; ?>"><?php echo $foo1; ?>
<input type="hidden" name="bar" id="bar1" value="<?php echo $bar1; ?>"><?php echo $bar1; ?>
<input type="submit" id="submit" value="submit"/>
* * php は、ロシア語のテキストをページ上で適切にエコーします。
PHP SQL挿入の例:
$sql = "INSERT INTO foobar (foo1,bar1) VALUES (:foo1,:bar1)";
$q = $con->prepare($sql);
$q->execute(array(':foo1'=>$foo1,
':bar1'=>$bar1));