web-dev-qa-db-ja.com

åがÃ¥のように表示されるのはなぜですか?

ここ åは問題ではありませんが、 this ページではÃ¥です。どうして?

enter image description here

3

Webサイトを作成するときは、特殊文字をさらに考慮する必要があります。 HTMLは、Webページの作成に使用されるマークアップ言語であり、特殊な「通常ではない」文字を含める独自の手段を提供します。これらの文字には、アクセント記号、特殊記号などが含まれます。

これが必要な理由は、Webページファイルの保存方法の性質によるものです。ファイルサイズを最小化し、コンピューター全体で最も一貫したエクスペリエンスを提供するために、encodingを使用して、各文字をバイナリ(数値)表現にマップします。各文字のバイナリ値はファイルに順番に保存されます。したがって、エンコードで許可される文字が多いほど、ファイルは大きくなります-指数関数的に。 (詳細については、 http://en.wikipedia.org/wiki/Character_encoding をご覧ください)

間違ったエンコーディングでファイルを保存すると、間違ったエンコーディングでは文字を適切にマッピングできないため、特殊文字が正しく表示されません。これは、ファイルの読み取りに使用するエンコードを変更することで修正できます。 IMDbがファイルを保存するエンコーディングは、ブラウザに送信されるエンコーディングとは明らかに異なるため、文字はゴミでレンダリングされます。

キャラクターが他のページで問題なく表示される理由は、キャラクターを書いた人がHTMLの仕組みを理解しているためです。前に言ったように、HTMLは非特殊文字を使用して特殊文字を表現する方法を提供します。

たとえば、HTMLでハートをレンダリングするには、Webページの作成時に♥と入力できます。結果は♥のように見えますが、これは明らかに特別なキャラクターです。しかし、このドキュメントに入力した方法では、特殊文字は必要ありませんでした。これにより、文字エンコードが一致しないという問題が本質的に解消されます。Webページを作成するときにnever特殊文字を入力する必要があるためです。

FacebookやTwitterなどのユーザー入力を許可する多くのWebサイトは、これらの文字をHTMLで自動的に再フォーマットして、Webブラウザーで表示したときに適切に表示されるようにします。明らかに、IMDbはこれを行いません。キャラクターが混乱したページはユーザーによって送信されたものであり、もう1つのページは公式のIMDbページであり、HTMLが特殊文字を表す方法を理解している誰かが書いたものです。

5
Jonathan Stoler