XMLの出力でhtmlentitiesは使うな!XMLの出力でhtmlentitiesは使うな!phpを使用して、rss(xml)の出力をすることがありまして、いろいろいじっていたのですがそこで出てくるのがやはり文字のエスケープ問題。XMLにはHTML特殊文字を書くことができません。外部サービスのRSSリーダーなどで正常に読み込めなくなります。phpでHTMLエスケープするなら、当然候補にあがるのがhtmlspecialcharashtmlentitiesこれらPHPのエスケープ関数です。「",<,>,&」をエスケープしてくれるのに対しhtmlentitiesはそれらHTMLの特殊文字に加えて更に多くの文字(半角カタカナ文字など、、)をエスケープしてくれます。「じゃあhtmlentitiesだけ覚えておけば間違いないじゃないか」と思った過去の私がいけなかった。ことXMLに形成して出力するに関しては「htmlentitiesは、XMLにとってしなくていい余計なエスケープをしてくれちゃう」ということです。これによって、フィードがエラーを起こし、不具合が生じる可能性があります。文字による装飾のために。その使いそうもない文字をエスケープしちゃうもんだから話がこじれる。気づいた時には時既に遅し、、なんてことも考えられます。こんなときは、プログラマーにつねに厳しい「ie」で確認しましょう。エラーで見れない旨を一発で返してくれます。20160307現在ちょとずれましたが、とにかくphpでXMLを形成する際はhtmlspecialcharasでおとなしくHTML特殊文字のみを変換しましょう!ということでした。