18

私のページでは、上部中央のテキスト (« Ce site Internet. ») にアクセント付きの E が含まれており、私のコンピューターでは疑問符として表示されます。

これは、head タグに meta charset="UTF-8" があり、テキストを含む PHP ファイルを Notepad++ で開くと UTF-8 として表示されるにもかかわらずです。

何が起こっているのですか?

4

4 に答える 4

21

ブラウザは、読み取っている数字を理解できない場合にこれらを表示します。UTF-8は自己同期型です。他のマルチバイト文字エンコーディングとは異なり、UTF-8を使用している場所を常に把握できます。番号192-247が表示されている場合は、マルチバイトシーケンスの先頭にいることがわかります。128-191が表示されている場合は、その真っ只中にいることがわかります。最初の数字を見逃して残りのテキストを文字化けさせる危険はありません。つまり、UTF-8では、シーケンス191の後に224が続くことは自然に発生しないため、ブラウザはそれをどう処理するかわからず、代わりに��を表示します。

ヘッドタグで次を使用します。

<meta charset="UTF-8">
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">

参照:http ://coding.smashingmagazine.com/2012/06/06/all-about-unicode-utf8-character-sets/

于 2012-10-18T11:23:38.503 に答える
4

このページは実際には UTF-8 ではなく、Latin1 でエンコードされています。実際にソース コード ファイルを UTF-8 で保存するか、そうでなければそれらが UTF-8 でエンコードされた出力であることを確認する必要があります。現在、サイトがエンコードされていると主張しているものと、実際にエンコードされているものとの間に亀裂があります.

于 2012-10-18T11:33:21.530 に答える
2

メタヘッダーとHTTPヘッダーでコンテンツをUTF-8としてアナウンスしていますが、送信されるのはUTF-8ではありません。PHP設定をチェックして、実際に正しいエンコーディングでコンテンツを出力していることを確認する必要がある場合があります。http://php.net/manual/en/mbstring.configuration.php

于 2012-10-18T11:55:45.477 に答える
1

アクセント記号付きの文字にASCII/HTMLコードを使用しましたか?そうでない場合は、ここにそれらのリストがあります。「Eacute」を検索すると、その文字のコードを微調整する必要があります(&Eacute;私はそう思います)。最初は、使用しているフォントファミリだと思いましたが、ブラウザですべてのスタイルを無効にしても、疑問符として表示されていたためではないと思います。

その他のHTML文字エンティティは https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_referencesにあります。

于 2012-10-18T11:22:50.247 に答える