CDATAは悪い考えです!それには多くの問題があります。代わりにすべきことはhtmlspecialchars()
、すべての値に使用することです。
了解しました。反対票を保持してください。CDATAに関するいくつかの問題があります。
]]>
まず、簡単な方法です。シーケンスをエスケープすることはできません。これは大したことではないように思われるかもしれませんが、「文字シーケンスをエスケープする」方法を選択する場合は、すべてのシーケンスをエスケープできる方法を選択する必要があります。
ここで大きな問題があります。CDATAは、Latin1データをUTF-8ドキュメントに挿入するためのハックとしてよく使用されます。人々は、私はXMLでエスケープの問題を抱えていると考えているので、回避策としてCDATAを使用します。
CDATAでは、任意の文字シーケンスが許可され、XMLドキュメントの指定された文字エンコードはこのブロックに関連しなくなります。ただし、どのタイプのテキストにも実際には文字エンコードがあり、エンコードを変換する代わりに(何をすべきか)、CDATAでラップすることでこれを「ハック」します。
また、制御文字はまだ許可されていないため、バイナリデータをエンコードするための実行可能な方法ではありません。
したがって、CDATAの種類は、「ここにドラゴンがいる」ことを意味します。ここには、指定されたエンコーディングではないバイトがあります。制御文字がないことがわかります。
文字エンコードに関するすべての仮定がなくなったため、これは消費者にとって悪い考えです。
ここにいくつかのリンクがあります: