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);
–
はUTF-8文字(emダッシュ)にマップされるため、文字エンコードとしてUTF-8を指定する必要があります。
$converted = html_entity_decode($string, ENT_COMPAT, 'UTF-8');
文字セットを使用してみてください
<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;
?>
これは動作するはずですそしてソースでも変換されるべきです