web-dev-qa-db-ja.com

特殊文字が期待どおりに表示されない

次の簡単なHTMLページがあります。

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
    <div>
        méywe
    </div>
</body>
</html>

ChromeまたはFirefox(他のブラウザをテストしなかった)で表示すると、次のように表示されます。

よし

私は何を取りこぼしたか? htmlファイルはUTF-8エンコードで保存されます。サーバーはApacheです。私のマシンはWindows 7 proです。テキストエディターはUltraEditです。

ありがとう!

更新

最初に、このhtmlファイルの編集にUltraEditを使用しましたが、問題が発生しました。 cmbuckleyの入力とNotepad ++のインストール(Heatmanofuriosoの提案から)に基づいて、ファイルが何とか破損している可能性を考えました(問題なく見える場合でも) UltraEditとメモ帳の両方)。そのため、メモ帳でファイルをutf-8エンコードで保存しました。それでも問題が発生しました(キャッシュが原因の可能性がありますか?その後、UltraEditを使用して再度保存しました。ブラウザでページを参照すると、問題はなくなりました。

学習したレッスン

それがあなたのツールである場合は2つのテキストエディタを使用し、説明できない問題が発生した場合は別のテキストエディタを試してください。日常的に使用するツールであっても、完璧なツールはありません。私の場合、Notepad ++はUltraEditが何らかの理由で失敗したという私のファイルのutf8の問題を修正しました。

助けてくれた人に感謝!!!

8
curious1

1-交換

<meta charset="utf-8">

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

2-HTMLエディターのエンコードがUTF8であるかどうかを確認します。通常、このオプションは、Notepad ++のように、プログラム上部のタブにあります。

3-何らかの理由でフォントをインポートする場合は、ブラウザがフォントと互換性があるかどうかを確認します。または、CSSを追加して、フォントを次のようなデフォルト/一般的に受け入れられているものに設定してください

body
{
    font-family: "Times New Roman", Times, serif;
}

それが役に立てば幸い :)

23
Heatmanofurioso

TF-8 エンコーディングではなく Windows-1252 エンコーディング(おそらく)でファイルを保存した理由は、非 [〜#〜] ascii [〜#〜] ブラウザで誤って表示された文字には、UltraEditによるUTF-8検出に関する知識が欠けていて、おそらく適切なUTF-8構成もありませんでした。

UltraEditの現在の最新バージョン22.10でのUTF-8エンコーディングの検出方法については、ユーザー間のフォーラムトピック TF-8は認識されません、大きなファイル で詳しく説明されています。このフォーラムのトピックには、すべてのHTMLファイルに主にUTF-8エンコードを使用するHTMLライターに最適なUltraEditの構成方法に関する推奨事項も含まれています。

残念ながら、フォーラムトピックで報告されているように、現在の最新のUltraEdit v22.10以前のバージョンで使用されているUTF-8 HTML文字セット宣言を検出するための正規表現検索は、短いHTML5バリアントでは機能しません HTML5のutf-8文字セット宣言header 。理由は、charset=utf-8の間の二重引用符文字です。参照されたトピックは、短いHTML5 UTF-8宣言も検出するために正規表現に小さな変更を加えることを提案して作成されたため、IDM Computer Solutions、Inc.に電子メールでこれを報告しました。 UTF-8検出は、参照されているフォーラムトピックの投稿で詳細に説明されているように、UltraEdit for UE v24.00およびUES v17.00の開発者によって後で更新されました。

ただし、HTML5ファイルがUTF-8エンコードとして宣言されているが、UltraEditがANSIファイルとしてロードした場合、ユーザーはメインウィンドウの下部にあるステータスバーに間違ったロードを確認できます。小さい(64 KB未満)UTF-8でエンコードされたHTMLファイルは、

  • uE <v19.00のユーザーに対して表示されるU8-およびラインターミネータータイプ(DOS/UNIX/MAC)、またはUEの以降のバージョンで基本的なステータスバーを使用する場合
  • またはUTF-8は、基本ステータスバーを使用していないUE v19.00以降のバージョンのユーザーのステータスバーのエンコードセレクターで選択されています。

そうでない場合、UltraEditユーザーは次を使用できます。

  • メニューから名前を付けて保存ファイルを選択し、UTF-8 - NO BOM forエンコード(Windows Vista以降)それぞれFormat(Windows 2000/XP)バイトなしでANSIからUTF-8にファイルを変換する注文マーク、または
  • ASCIIからUTF-8(Unicode編集)サブメニュー(Conversionsin menu) Fileすぐに保存せずにファイルをASCII/ANSIからUTF-8に変換する、または
  • Unicode-UTF-8ステータスバーのエンコードセレクター(UE v19.00以降のみ)を使用して、ASCII/ANSIからUTF-8およびUnicode編集の有効化。

最後の2つのオプションについては、Advanced-SettingsまたはConfiguration-File Handling-Save次の保存時にバイト順マークを付けて、または付けずにファイルを保存することを決定します。

Word méyweがUTF-8エンコードを使用してファイルに保存されると、バイトストリーム6D C3 A9 79 77 65(16進数)が生成され、UTF-8エンコードファイルがASCIIで開かれたときにméyweとして表示されます。/ANSIモード([ファイル]-[開く]ダイアログのオプション)はコードページとしてWindows-1252を使用し、UltraEditは次のオープン時にこのファイルをUTF-8エンコードファイルとして自動的に検出しますが、少なくとも1つのUTFがあるため<meta charset="utf-8">は認識されませんファイルの最初の64 KBに-8エンコードされた文字。

質問に答えるには:

私は何を取りこぼしたか?

ANSIファイル(またはコードページを使用して文字エンコードされたテキストファイルごとに正確なシングルバイト)を開いたり、UTF-8エンコードとして宣言した後、ファイルをUTF-8エンコードファイルとして保存できませんでした。これは、多くのユーザーがHTMLファイルに書き込む一般的な問題です

<meta charset="utf-8">

または

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

または

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

またはXMLファイルに

<?xml version="1.0" encoding="UTF-8"?>

または

<?xml version="1.0" encoding='utf-8'?>

および'または"の使用法に応じたその他のバリエーション、およびUTF-8またはutf-8(およびその他のスペル)のいずれか(およびその他のスペル)の書き込みファイルの。

最適なデフォルトの新しいファイル形式は何ですか? には、多くの有用な情報と、テキストエンコーディングに関する有用な情報を含むWebページへのリンクが含まれています。

4
Mofi

サーバーがContent-typeヘッダーでcharsetを送信しているかどうかを確認できますか?その中で指定されたエンコーディングは、meta要素で指定したものよりも優先されます。

3
sideshowbarker

Font-familyをCalibri(または他の一般的に受け入れられているフォント)に変更することでうまくいきました。

例:

<span style="font-family:Calibri">&#35; My_Text</span>
2
Abhinav1602