gpt4 book ai didi

PHP MySQL更新和奇怪的字符?

转载 作者:行者123 更新时间:2023-11-29 00:33:18 24 4
gpt4 key购买 nike

我有一个在 mySQL 中更新表的表单。它似乎工作但是当表单输入字段中有空格时它会插入一个奇怪的字符。 “”

我感觉这与我使用的字符集有关,但我不确定,因为我以前从未遇到过此类问题。

这是代码。

if($_POST){

$db = new DB_Connection();
$return = array();
$sqlmap = array();
$count = count($_POST['id']);

for ($i = 0; $i < $count; $i++) {
foreach($_POST as $column => $value){
if(empty($value)) $value = "";
$sqlmap[$column] = $value[$i];
}
//echo "<pre>".print_r($sqlmap,true)."</pre>";
unset($sqlmap['command']);

$tableid = $sqlmap['id'];
$exclude = array("id","Date");

$sql = "UPDATE contact_form SET ";
$sqlloop = "";
foreach($sqlmap as $key => $value){
if(!in_array($key,$exclude)){
$sqlloop .= "`".$key."`='".mysql_real_escape_string($value)."',";
}
}
$sqlloop .= " Date = CURDATE() ";
$sqlloop = str_replace("Â","",$sqlloop);
$sqlloop = str_replace("Â ","",$sqlloop);
$sqlloop = str_replace("_"," ",$sqlloop);
//$sqlloop = substr($sqlloop, 0, -1);
$sql .= $sqlloop;
$sql .= " WHERE id = '".$tableid."';";
//echo $sql;
$result = $db->query($sql,"website");
if (!$result) $return['error'] = "ERROR:".$db->getError();
else {
$return['success'] = "SUCCESS";
echo json_encode($return);
}
}
}

它似乎只有在有“空白”空间时才会发生。我尝试了剥离和重新填充以及其他一些操作,但似乎没有任何效果。

帮忙吗?

更新:

所以我一直在谷歌上进行一些挖掘,我发现当我序列化表单时,这个空白条目被编码为 %c2%A0。我正在使用 Jquery。连载()。这是空输入序列化的正常行为吗?

下面是我的 Jquery 代码:

  $("form[name='selectedform']").submit(function(e){
e.preventDefault();
$.ajax({
type: "post",
dataType: 'json',
url: "/system/curlbridge.php",
data: $("#selectedform").serialize(),
success: function(data){
alert(data.Sucess);

},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus);
alert("Error: " + errorThrown);
}
});
});

最佳答案

%C2%A0是代码点U+00A0的UTF-8编码,也称为不间断空格。目前尚不清楚这是在哪里生成的。

您看到 的原因是因为您的代码将 UTF-8 数据视为 Latin-1,尽管这可能只是一个显示时间问题。为确保您的浏览器将您输出的数据解释为 UTF-8,请包含相关 header :http://www.w3.org/International/O-HTTP-charset

关于PHP MySQL更新和奇怪的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15556705/

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