gpt4 book ai didi

php - 将 ô 插入 mysql 数据库是 Rhône 的一部分,结果是 Rh

转载 作者:行者123 更新时间:2023-11-29 02:05:26 24 4
gpt4 key购买 nike

当我将字符串 'Rhône' 插入我的数据库时,剩下的就是 'Rh'这怎么可能?是使用 Mysql with utf8_general_ci 编码。

<?php
header( 'Content-Type: text/html; charset=utf-8' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Decode</title>
<head></head>
<body>
<?php
include_once ($_SERVER['DOCUMENT_ROOT'] . '/v3/functions/connect.php');

$res_id = $_POST['res_id'];
$yr_id = $_POST['yr_id'];

$yr_id=html_entity_decode($yr_id, ENT_COMPAT, "UTF-8");


if(isset($yr_id) && $yr_id<>'') {

$search = array('%C3%B4');
$replace = array('ô');
$yr_id=str_replace($search, $replace, $yr_id);



mysql_query("SET NAMES utf8");
$uQuery2="UPDATE sv_snowrepublic set yr_id='$yr_id' where res_id=$res_id limit 1";
$uResult2 = mysql_query($uQuery2);
echo 'updated';

}







$uQuery1="SELECT * FROM sv_snowrepublic where res_id=$res_id limit 1";
$uResult1 = mysql_query($uQuery1);
$row1 = mysql_fetch_assoc($uResult1);


if (mysql_num_rows($uResult1) >= 1 && isset($res_id) && $res_id>2)

{
echo "<form method='POST' action='index.php'>";
echo "<input type='hidden' size='4' value='" . $row1['res_id'] . "' name='res_id' /><br />";

$yr2_id=$row1['yr_id'];
// $yr2_id=html_entity_encode($yr2_id, ENT_COMPAT, "UTF-8");
echo mb_detect_encoding($yr2_id);

echo "<input type='text' size='200' value='" . $yr2_id . "' name='yr_id' /><br />";
echo "<br /><label for='submit'></label><input type='submit' name='submit' value=' Send '></form>";
}


?>

</body>
</html>

最佳答案

How is that possible?

将字符串 Rhône 传输到 MySQL 数据库时遇到问题。这可能有多种原因,最肯定的是所涉及的组件之一(最肯定的是作为服务器或客户端的 MySQL)在指定编码的字符串上运行,该编码与您通常称为 ô 的字符位置不匹配>。由于它是编码看起来无效的第一个位置,因此它将被截断。

您必须确保在任何情况下都不会出现任何错误(即使是最轻微的配置错误),您所处理的数据的编码对您来说始终清晰、设置正确并得到妥善处理。

这既是为了输入您的数据库,也是为了从您的数据库中获取数据。

想到的是:

  • 您没有将编码为 UTF-8 的 php 文件保存到光盘。

进一步:

  • 您没有使用推荐的 MySQL 客户端扩展。
  • 您正在使用 SET NAMES 而不是正确设置连接编码设置。参见 mysql_set_charsetDocs .

检查一下,但这只是一个猜测,发生这种情况的原因可能有很多。

关于php - 将 ô 插入 mysql 数据库是 Rhône 的一部分,结果是 Rh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6975451/

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