web-dev-qa-db-ja.com

アクセント付きのEが正しく表示されない

私のページでは、上中央("CeサイトInternet。")のテキストにEが含まれており、アクセント記号が付いているため、コンピューターでは疑問符として表示されます。

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

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

15
drake035

ブラウザは、読み取っている数値を理解できない場合にこれらを表示します。 UTF-8は自己同期型です。他のマルチバイト文字エンコーディングとは異なり、UTF-8のどこにいるかが常にわかります。番号192-247が表示されている場合は、マルチバイトシーケンスの先頭にいることがわかります。 128-191が表示された場合は、1つの中央にいることがわかります。最初の番号を見逃して、残りのテキストが文字化けする危険はありません。これは、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/

19
twodayslate

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

2
deceze

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

2

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

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

1
Tom Oakley