HTMLページに単純に目盛り(✔)と十字(✘)のシンボルを表示したいのですが、ボックスまたはgoopのいずれかとして表示されます–明らかにエンコードに関係しています。
メタタグを設定してutf-8を表示しましたが、明らかに何かが欠けています。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
編集/ソリューション: FireBugを使用して行われたコメントから、ページで渡されるヘッダーは実際には「Content-Type:text/html」であり、UTF-8ではないことがわかりました。 Notepad ++を使用してファイル形式を見ると、ファイルが「UTF-8 without BOM」としてフォーマットされていることがわかりました。これを単にUTF-8に変更すると、シンボルは正しく表示されるようになりました...
HTTPサーバーのヘッダーが正しいことを確認する必要があります。
特に、ヘッダー:
Content-Type: text/html; charset=utf-8
存在する必要があります。
HTTPヘッダーが存在する場合、ブラウザはメタタグを無視します。
また、ファイルを実際にUTF-8としてエンコードしたことを確認してから、次を確認/試してください。
&#uuu;
などのHTMLエンコードされたエンティティを試してください。注:システムがグリフを見つけることができないユニコード文字(その文字のフォントがない)を使用する場合、ブラウザーには疑問符または記号のようなブロックが表示されます。ただし、複数のローマ字が表示される場合は、エンコードの問題を示しています。
回答がすでに受け入れられていることは知っていますが、いくつかの点を指摘したかったのです。
content-type
とcharset
を設定することは明らかに良い習慣です。サーバー上で設定することは、アプリケーション全体で一貫性を保証するため、はるかに優れています。
ただし、アプリケーションの言語がUTF-8
文字セットでのみ使用可能な多くの文字を使用する場合にのみ、UTF-8
を使用します。いずれかのケースでUnicode文字または記号を表示する場合は、ページのcharset
を変更せずに表示できます。
HTML
レンダラーは、numeric character reference (NCR)
でシンボルに言及している限り、常にページのエンコーディング文字セットの一部ではないシンボルを表示できます。奇妙に聞こえますが、本当です。
したがって、html
にansi
またはiso
文字セットのエンコードがあることを示すヘッダーがある場合でも、そのhtml文字参照を使用してチェックマークを表示できます。 10進数-#10003;または16進数-#x2713;
したがって、ページでこの問題に直面している理由を理解するのは少し難しいです。 NCR値が正しいかどうかを確認できますか?これは良いリファレンスです http://www.fileformat.info/info/unicode/char/2713/index.htm
実際にファイルをUTF-8として保存するか、代わりに特殊文字にHTMLエンティティ(&#nnn;
)を使用してください。
ニコラスの提案とは異なり、meta
タグは実際にはブラウザに無視されません。ただし、Content-Type
HTTPヘッダーは、ドキュメント内のmeta
タグの存在よりも常に優先されます。
そのため、HTTPヘッダーを介して正しいエンコードを送信するか、このHTTPヘッダーをまったく送信しないようにしてください(推奨されません)。 meta
タグは、主にHTTPトラフィック経由で送信されないローカルドキュメントのフォールバックオプションです。
HTMLエンティティの使用も回避策と見なされる必要があります。これは実際の問題を回避するためのものです。 Webサーバーを適切に構成することで、多くの迷惑を防ぎます。
これはファイルの問題だと思います。latin-1のような1バイトエンコーディングでファイルを保存しただけです。エディターをGoogleで設定し、ファイルをutf-8に設定する方法。
Utf-8をデフォルトにしないエディタがあるのはなぜだろうか。