我想保存特殊字符,如数据库中的以下字符串: -
:|: - •“的:•.-:|: - • EXCELLENT 的• - :|: - •• - :| : - •:* ''•
以下是我正在使用的代码。
$Fields ['CommentText']=$CommentText;
$Fields = prepareMySQLi($FieldsNotifications,$linkMysqli);
$insert = mysqli_query($linkMysqli,"INSERT INTO `feeds` SET $Fields");
function prepareMySQLi($MyArray,$linkMysqli) {
foreach($MyArray as $col => $val) {
if($val=='Invalid Request') $val='';
if ($val!='' && !is_array($val)) {
$col = mysqli_real_escape_string($linkMysqli,$col);
$val = mysqli_real_escape_string($linkMysqli,$val);
if(isset($fields)) {
$fields .= ", `$col` = '$val' ";
} else {
$fields = " `$col` = '$val' ";
}
}
}
return $fields;
}
但上面的代码保存结果如: -
一个€¢:AA:•.EXCELLENT.•:AA:••:AA:•
任何人都可以指导我如何保存与数据库相同的字符串
答案 0 :(得分:2)
好像是编码问题。您接收的数据的编码应与存储它的数据库的编码相同。
一般做法是对两者使用“utf-8”编码。
请检查数据库存储数据的编码,并尝试将接收的数据转换为该格式,反之亦然。
您可以使用utf8_encode
函数将数据编码为“utf-8”。
答案 1 :(得分:1)
请通过做这两件简单的事情来检查,我希望它可以帮助你: -
要保存此数据(特殊字符)的列的"collation"
,将其设为"utf-8-bin"
。
将列的类型更改为"blob"
,"text"
或"long text"
。
尝试使用您的代码: - mysqli_set_charset($linkMysqli, "utf8");
encode and decode process
。在保存文本之前对其进行编码,如果要在某处显示,则先解码然后显示。
答案 2 :(得分:0)
简单的事情就是改变
db中的整理 utf8 - >的 utf8_unicode_ci 强>
如果你不使用字段输入作为文字而不是将其更改为文字...
可能这是一个简单的解决方案......
其他事情你可以查看你的Mysqli Db课程
'charset' => 'utf8',
是否有...... ??
如果您没有找到字符集,请转到utf8 ...
最后检查您的页面标题
并添加
<meta charset="utf-8">
多数民众赞成你可能会得到一些东西......