PHP中html_entity_decode问题?

2022-08-30 21:51:44

我正在尝试将HTML实体从源字符串转换为其等效的文字字符。

例如:

<?php

$string = "Hello &#8211; World";
$converted = html_entity_decode($string);

?>

虽然这正确地转换了屏幕上的实体,但当我查看HTML代码时,它仍然显示显式实体。我需要更改它,以便它从字面上转换实体,因为我没有在HTML页面中使用字符串。

关于我做错了什么的任何想法?

仅供参考,我正在将转换后的字符串发送到Apple的推送通知服务:

$payload['aps'] = array('alert' => $converted, 'badge' => 1, 'sound' => 'default');
$payload = json_encode($payload);

答案 1

&#8211;映射到 UTF-8 字符(全角破折号),因此您需要指定 UTF-8 作为字符编码:

$converted = html_entity_decode($string, ENT_COMPAT, 'UTF-8');

答案 2

尝试使用字符集

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
<?php
$string = "Hello &#8211; World";
$converted = html_entity_decode($string , ENT_COMPAT, 'UTF-8');
echo $converted;
?>

这应该有效,它也应该在源代码中转换


推荐