编辑/更新代码:
这解决了我的问题。
$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 主机,如果有帮助的话)。
我在页面顶部有这个。
<?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));