ここ数年、私は多くの PHP プログラミングを行ってきましたが、私を悩ませ続けていることの 1 つは、Unicode とマルチバイト文字列のサポートが弱いことです (確かに、ネイティブには何もありません)。たとえば、「htmlentities」は PHP の世界でよく使用される関数のようですが、すべての文字列をローカライズ可能に保ち、データベースに UTF-8 のみを保存し、UTF のみを配信するように努力すると、非常に面倒であることがわかりました。 -8 Web ページなど 突然、データベースとブラウザの間のどこかに、すべてのバイトが文字であると偽ってすべてを台無しにする、この絶望的に単純な機能があります。
この種の関数をダンプしたいだけです。それらはまったく不要に思えます。最近でも「ä」と書く必要がありますか? 「あ」の代わりに?少なくとも、私の Firefox は、適切なエンコーディングで提供されている限り、最も奇妙なアジアのグリフでも問題なく表示できるようです。
更新:より正確に言うと、HTMLタグを表示する以外に必要な名前付きエンティティです(「<」の「<」など)
更新 2:
@Konrad: いいえ、名前付きエンティティは必要ないと言っていますか?
@Ross:しかし、出力ロジックをそのような問題から解放するために、入力時にユーザー入力をサニタイズする方が良いのではないでしょうか? (もちろん、入力で信頼できるサニタイズが可能であると仮定します-しかし、そうでない場合、出力で可能ですか?)