插入包含html实体的字符串时,字符串被截断

问题描述 投票:0回答:1

我有一个类似于下面的表格。

   <form action="" method="POST">
     <input type="text" name="header" />
     <textarea id="ck_editor" name="content"></textarea>
   </form>

发送表单时,我将

Ğ, Ş, Ü
等特殊字符替换为相应的 html 实体。然后使用 PHP/MySQLI 将编辑后的字符串插入数据库。
content
插入没有任何问题。但是到了
header
,就在特殊字符位置之后被切掉了。

当我想插入时

土耳其卡拉克特

它像

一样插入到表格中

T

我回显

header, content
变量 - 没有任何问题 - 通知插入过程是否成功。 MySQL 表

icerik_id INT(11) AUTO_INCREMENT PRIMARY
icerik_baslik VARCHAR(255) 
icerik_icerik TEXT
icerik_durum INT(11) DEFAULT = '1'
collation utf8_unicode_ci

如何解决这个问题?

PHP 代码 // (icerik = 内容) (baslik = 标题)

 if ($_POST) {

    ... 

    if ($ekle == true) {
            // Girdileri Düzenle
            // HTML Entity
            $baslik = htmlentities($baslik, ENT_COMPAT, "UTF-8");
            $icerik= htmlentities($icerik, ENT_COMPAT, "UTF-8");


            $ekle_db = $db->query("INSERT INTO icerikler SET
                icerik_baslik = '$baslik',
                icerik_icerik = '$icerik'
            ");

            if ($ekle_db) {
                $ekle_msg[] = "<span style='color: rgba(140,200,30,1)'>İçerik Başarıyla Eklendi:</span> $baslik";
                $ekle = true;
            } else {
                $ekle_msg[] = "<span style='color: red'>İçerik Eklenenemdi.</span>";
                $ekle = false;
            }
        }

        ...
     }
php mysql mysqli
1个回答
0
投票

我认为你需要使用 utf8_turkish_ci

© www.soinside.com 2019 - 2024. All rights reserved.