在我的表中,表列名称是存储书籍描述的描述,当我从数据库获取描述时,字符串 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;
}
输出:描述: 然后他会把它们放入滚筒烘干机\u00e2\u20ac\u201c等......
我想从输出字符串中删除\u00e2\u20ac\u201c 这些。
最佳答案
这些是 Unicode 代码点。它们可能是您数据库中的重要内容。
你可以试试这个:
$response["Book"]["Description"] = strip_tags(htmlentities($rows["description"]));
但是,如果您使用 JSON 将此信息发送到浏览器,则浏览器很可能会执行正确的操作。例如,\u20ac 是 €,\201c 是“(左双引号)。 htmlentities()
API 调用会将 unicode 代码点转换为相应的实体,这使得它们更容易阅读。
\u20ac €
\201c “
如果您希望将文本字符串转换为 8 位 latin1 (iso8859-1) 字符集,则可以在 SELECT
语句中使用此类子句。
SELECT CONVERT(description USING latin1) description,
CONVERT(title USING latin1) title
如果你想要老式的 7 位 ASCII,你可以这样做
SELECT CONVERT(description USING ascii) description ...
如果数据中的代码点可以用目标字符集表示,它们就会被转换。否则它们将被替换为 ?
(0x3f),一个替换字符。
如果您需要搜索数据库内容,那就是另一个问题了。
关于php - 当我获取字符串MySQL数据库时,如何从字符串中删除\u00e2\u20ac\u2122,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27923725/