UTF-8 文字列 (つまり 8 ビット文字列) を XML 互換の 7 ビット文字列 (つまり、数値エンティティを含む印刷可能な ASCII) に/から変換するにはどうすればよいですか?
すなわち、次のencode()
ような関数:
encode("“£”") -> "“£”"
decode()
も役立ちます:
decode("“£”") -> "“£”"
PHP のhtmlenties()
/html_entity_decode()
ペアは正しいことをしません:
htmlentities(html_entity_decode("“£”")) ->
"“£”"
手間をかけて型を指定すると少しは役に立ちますが、それでも数値エンティティではなく、XML と互換性のない名前付きエンティティが返されます。
htmlentities(html_entity_decode("“£”", ENT_QUOTES, "UTF-8"), ENT_QUOTES, "UTF-8") ->
"“£”"