web-dev-qa-db-ja.com

単にUnicode文字をHTMLに入れるのではなく、HTMLエンティティを使用するのはなぜですか?

HTMLファイルに非当たり障りのない文字を入れたいとしましょう。たとえば、「→」。 「rarr」と入力する理由はありますか? HTMLファイルに「→」を入れる代わりに? HTMLファイルがエンコードされ、何らかのUnicode形式で送信されると仮定します。

12
Nick

これらの2つの最後のステートメントは、大きな前提です。

たとえば、AJAXをその文字通りの意味に使用するWebアプリがあります-XMLドキュメントをその場でロードするために使用します。 XMLドキュメントに正しいcontent-encodingヘッダーがない(またはまったくない)場合、Unicode文字(スマートクォート、長いダッシュ、いくつかの特別な空白、Word Café)でInternet Explorerが作成されます。毎回お尻に落ちる。 AJAX要求は失敗し、javascriptエラーが発生します。

ただし、すべてのUnicode文字をHTMLエンティティでサーバー側で置換すると、すべてが正常に機能します。

もちろん、ファイルに正しいコンテンツヘッダーが含まれている場合、これは最新のブラウザーでは問題になりません。

10
Mark Henderson

優れた受け入れられた答えに追加するために:全体として、ASCIIファイルはさまざまなエディター間ではるかに移植性があります。

0
Bobby Jack

ただし、すべてのUnicode文字をHTMLエンティティでサーバー側で置換すると、すべてが正常に機能します。

これは、すべての文字をHTMLエンティティに置き換えることができることを前提としていますが、HTMLエンティティはできません。後で発生するときに混乱するのではなく、正しいヘッダーを使用し、これらの問題を(間違ったヘッダーを使用して)早期に発見してください。

0
Kim