gpt4 book ai didi

php - 俄语西里尔文文本进入数据库

转载 作者:行者123 更新时间:2023-12-04 04:46:50 26 4
gpt4 key购买 nike

编辑/更新代码:
这解决了我的问题。

$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));

最佳答案

请尝试

$con->exec("SET NAMES = utf8");

在 PDO 对象创建之后。

您的数据库以这种方式存储这些内容是正常的。
尝试检查您的 MySQL 客户端,是否可以正确显示 UTF-8 数据库数据。

我知道某些版本的 SQLYog 不能,例如旧版本的 PHPMyAdmin

我敢打赌,当您从脚本中获取数据时,您会收到正确的数据。
如果没有 - 尝试使用我已经说过的“SET NAMES”。

它可能会帮助你。

谢谢。

另外,看看 PHP PDO: charset, set names?

关于php - 俄语西里尔文文本进入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18056815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com