当我获取字符串 MySQL 数据库时,如何从字符串中删除 u00e2u20acu2122


How to remove u00e2u20acu2122 from the string when i fetch the string MySQL database

在我的表中,表列名称是存储书籍描述的描述,当我从数据库中获取描述时,字符串 Unicode ''u00e2''u20ac''u2122 也在我的字符串中我想从字符串中删除这些值。波纹管是我的PHP代码

case 'bookdetails': {
                $query = "SELECT * FROM book";
                $result = mysql_query($query);
                $num = mysql_num_rows($result);
                while($rows = mysql_fetch_assoc($result)) {
                    $response["Book"]["Id"] = $rows['id'];
                    $response["Book"]["BookName"] = $rows['bookName'];
                    $response["Book"]["Description"] = strip_tags($rows["description"]);
                }
                if($num > 0) {
                    $response["success"] = 1;
                } else {
                    $response["error"] = 1;
                    $response["Error_msg"] = "No record founds.";
                }
                echo json_encode($response);
            break;
            }

输出: 说明 :之后,他会把它们放进滚筒式烘干机——00e2''u20ac''u201c等。

我想从我的输出字符串中删除 ''u00e2''u20ac''u201c 这些。

这些是 Unicode 代码点。它们可能是数据库中的重要内容。

你可以试试这个:

  $response["Book"]["Description"] = strip_tags(htmlentities($rows["description"]));

但是,如果您使用 JSON 将此信息发送到浏览器,则浏览器很可能会做正确的事情。 例如,''u20ac 是 €,''201c 是 "(左双引号)。htmlentities() api 调用会将 unicode 代码点转换为其实体等效项,这使得它们稍微更易于阅读。

  'u20ac   €
  '201c    “

如果您希望将文本字符串转换为 8 位拉丁语 1 (iso8859-1) 字符集,则可以在 SELECT 语句中使用此类子句。

SELECT CONVERT(description USING latin1) description,
       CONVERT(title USING latin1) title

如果你想要老式的7位ASCII,你可以这样做

SELECT CONVERT(description USING ascii) description ...

如果数据中的代码点可以用目标字符集表示,则它们将被转换。否则,它们将被替换为替换字符? (0x3f)。

如果您需要搜索数据库内容,那是另一个问题。