我正在尝试将HTML实体从源字符串转换为其等效的文字字符。
例如:
<?php
$string = "Hello – World";
$converted = html_entity_decode($string);
?>
虽然这正确地在屏幕上转换实体,但当我查看HTML代码时,它仍然显示显式实体。我需要更改它,以便它实际上转换实体,因为我没有在HTML页面中使用该字符串。
关于我做错的任何想法?
仅供参考我将转换后的字符串发送到Apple的推送通知服务:
$payload['aps'] = array('alert' => $converted, 'badge' => 1, 'sound' => 'default');
$payload = json_encode($payload);
答案 0 :(得分:32)
–
映射到UTF-8字符(em破折号),因此您需要指定UTF-8作为字符编码:
$converted = html_entity_decode($string, ENT_COMPAT, 'UTF-8');
答案 1 :(得分:4)
尝试使用charset
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<?php
$string = "Hello – World";
$converted = html_entity_decode($string , ENT_COMPAT, 'UTF-8');
echo $converted;
?>
这应该有效 它也应该在源
中转换