我有一个帮助用户输入数据的html表单
<form action="insert.php" method="post" enctype="multipart/form-data">
Service Name
<input type="text" class="form-control" name="a"/>
Service Description
<input type="text" class="form-control" name="b"/>
</form>
insert.php页面有助于在数据库中插入数据。
<?php
$a= mysqli_real_escape_string($con, $_POST['a']);
$b= mysqli_real_escape_string($con, $_POST['b']);
$sql= "INSERT INTO abc(a, b) VALUES ('$a','$b')";
if(mysqli_query($con,$sql))
{
echo "success";
}
else
{
echo "Error: " . $sql . "<br>" . mysqli_error($con);
}
?>
虽然它工作正常,但是当我输入类似这样的数据时
ABC – DEF (ABC – ZYZ)
它以下列形式保存在数据库中
ABC – DEF(ABC †“ ZYZ)
任何人都可以告诉我们如何以原始形式保存数据而不使用spl字符 我想做的另一件事是以json格式从数据库中获取数据,因为我使用了
$sql="SELECT * from abc";
$result = mysqli_query($con, $sql);
if(mysqli_num_rows($result)>0)
{
while($row = mysqli_fetch_assoc($result))
{
header('Content-type: application/json; charset=utf-8');
echo json_encode(array('list'=>$row));
}
}
但我得到&#34; null&#34;价值
答案 0 :(得分:0)
在if(mysqli_query($con,$sql))
$con->set_charset("utf8");
如果以上操作无效,请在if(mysqli_query($con,$sql))
mysqli_query($con, "SET NAMES 'utf8'");
mysqli_query($con, 'SET CHARACTER SET utf8');
更新为您的评论。
您还需要更改
header('Content-type: application/json');
进入
header('Content-type: application/json; charset=utf-8');
回答第二期
<?php
$sql="SELECT * from activity";
mysqli_query($con, "SET NAMES 'utf8'");
mysqli_query($con, 'SET CHARACTER SET utf8');
$result = mysqli_query($con, $sql);
if(mysqli_num_rows($result)>0)
{
while($row = mysqli_fetch_assoc($result))
{
header('Content-type: application/json; charset=utf-8');
echo json_encode(array('list'=>$row));
}
}
?>
答案 1 :(得分:0)
你所拥有的是0xc3a2e282ace2809c
,它看起来像em dash,错误地utf8编码。 em dash 实际上是0xe28094
,如果您在PHP中执行类似utf8_encode(hex2bin('e28094'))
的操作,您将获得类似的结果。这意味着您的PHP在连接到MySQL时没有正确协商字符集编码,或者您的架构使用不同的排序规则来解释数据,而实际上是在不同的字符集中进行编码。
首先检查您的架构的排序规则设置以确认这一点,然后确保在通过mysqli::set_charset连接到MySQL时始终设置所需的字符集,例如: mysqli_set_charset($con, 'utf8')
。这是这样做的首选方式(尽量不要使用SET NAMES
,因为有一些警告可能会在以后拍摄你的脚)。您必须必须执行之前在DBMS中执行任何操作才能使其生效(即在您的示例中调用mysqli_real_escape_string
之前以上)。有关详细信息,另请参阅character sets concepts。
答案 2 :(得分:0)
使用此..
header('Content-Type: text/html; charset=utf-8');
表单中的使用此
<form accept-charset="utf-8">