HTML ファイルを開いたら文字化けする・画像が出ない。スマホでもパソコンでも直す方法
要約
HTML ファイルの文字化けの多くは、ファイルを保存した文字コード(Shift_JIS など)と、ページが宣言している文字コード(UTF-8)が合っていないか、宣言がないために起きます。直すには、head のすぐ後に <meta charset=\"utf-8\"> を入れ、ファイルを UTF-8 で保存し直します。画像や CSS は HTML とは別のファイルなので、HTML だけを送っても表示されません。1 つのファイルにまとめるか、リンクで渡します。
Free プラン: カード登録なし、公開 1 ページまで
目次
ChatGPT に作ってもらったクイズを iPhone で開いたら、縺薙s縺ォ縺。縺ッ のような見たことのない漢字が並んだ。メモ帳で直したページが、ブラウザでは � だらけになった。画像のところには、壊れたアイコンしか出ない。
壊れているのは、たいていファイルの中身ではありません。読む側が、保存したときとは別の文字コードで読んでいるか、画像のファイルが一緒に届いていないだけです。このガイドでは、化け方から原因を見分けて直す手順と、画像や CSS が出ないときの直し方を説明します。Chrome・Safari・iPhone では、2026 年 10 月 25 日に同じファイルを開いて確かめました。文字は読めるのに、コードが出る・ボタンが動かないなら、iPhone で HTML ファイルを開く方法 か Android で HTML ファイルを開く方法 を見てください。
自分で作ったファイルを人に見せたいなら、ページ冒頭のボックス にファイルを入れると、登録なしでプレビューのリンクができます。このプレビューではスクリプトとフォームが止まります。「このページを受け取る(無料・カード不要)」から登録すると、ページがアカウントに入り、スクリプトも動くようになります。
化け方で、原因がわかる
文字化けは、ファイルを保存したときの文字コードと、読むときの文字コードが食い違うと起きます。日本語の HTML ファイルでよく出てくるのは、UTF-8 と Shift_JIS の 2 つです。HTML の仕様をまとめる WHATWG は、ファイルを UTF-8 で書くことを求めています。それでも、Windows のメモ帳の「ANSI」のように、UTF-8 以外の文字コードで保存されたファイルがあります。
どちらにずれたかは、化け方でわかります。「こんにちは。」が次のように出たら、原因はこうです。
| 見え方 | 例 | 原因 | 直し方 |
|---|---|---|---|
| 「縺」「繧」のような漢字と、半角のカナや記号が並ぶ | 縺薙s縺ォ縺。縺ッ | ファイルは UTF-8 なのに、Shift_JIS として読まれた | <meta charset="utf-8"> を入れる。shift_jis と書いた行は消す |
| 黒いひし形に「?」の記号が並ぶ | ����ɂ��́B | ファイルは Shift_JIS なのに、UTF-8 として読まれた | UTF-8 で保存し直してから、<meta charset="utf-8"> を入れる |
例の文字は、下の試験で Chrome と Safari に実際に出たものです。iPhone の「ファイル」アプリのプレビューでは、化けた文字の中に四角い記号も混じりました。
どのアプリで化けるか
同じファイルでも、開くアプリによって化けたり化けなかったりします。文字コードの宣言がないと、アプリが推測で読むからです。WHATWG の HTML の仕様では、宣言がないとき、ブラウザは中身から文字コードを推測してもよく、推測しないときの既定はブラウザしだいで、ふつうは使う人の地域で決まります。仕様の表が勧める日本語の既定は Shift_JIS です。
5 種類のファイルを作り、2026 年 10 月 25 日に開いた結果です。縺 型と � 型は、上の表の化け方です。Mac は macOS 26.5.2(言語は日本語)。iPhone は Apple の iPhone シミュレーター(iOS 26.5、iPhone 17 Pro、言語は日本語)で、「ファイル」アプリに保存してタップしたプレビューです。
| ファイルの中身 | Chrome 155(Mac) | Safari 26.5.2(Mac) | iPhone の「ファイル」(iOS 26.5) | Convika の HTML ビューアー |
|---|---|---|---|---|
UTF-8、<meta charset="utf-8"> あり | 正しく出る | 正しく出る | 正しく出る | 正しく出る |
| UTF-8、宣言なし | 正しく出る | 縺 型 | 縺 型 | 正しく出る |
| Shift_JIS、宣言なし | 正しく出る | 正しく出る | 正しく出る | � 型 |
Shift_JIS、<meta charset="utf-8"> あり | � 型 | � 型 | � 型 | � 型 |
UTF-8、<meta charset="shift_jis"> あり | 縺 型 | 縺 型 | 試していない | 縺 型 |
つまずきやすいのは 2 行目です。コードの一部だけをコピーしたり、<head> を消したりすると、UTF-8 のファイルから宣言がなくなります。すると Mac の Safari と iPhone のプレビューでは化け、Chrome では中身から UTF-8 だと判断されて正しく出ました。作った人の Chrome では読めて、相手の iPhone では読めない、ということが起きます。
1 行目のように宣言と中身がそろっていれば、試したどのアプリでも正しく出ました。直すときは、この形にそろえます。Chromebook の Chrome では試していません。Chromebook での開き方は Chromebook で HTML ファイルを開く方法 にまとめています。
文字化けを直す 4 つの手順
1. 化け方を見る
上の表で、縺 型か � 型かを確かめます。縺 型なら、ファイルは UTF-8 で、宣言を直せば済みます。� 型なら、ファイルは UTF-8 ではないので、保存し直しも要ります。
2. HTML ビューアーで開いて確かめる
迷ったら、無料の HTML ビューアー でファイルを開きます。ビューアーは、ファイルの先頭の BOM か <meta charset> に書かれた文字コードで読み、どちらもなければ UTF-8 として読みます。宣言のないファイルがここで正しく出れば、中身は UTF-8 です。� が並べば、中身は Shift_JIS などの別の文字コードです。開くだけなら、ファイルは Convika のサーバーに送られません。
人から届いたファイルで、心当たりのないものは開かずに送った人に確かめてください。少しでも気になるファイルは、選ぶ前に「スクリプトを動かす」のチェックを外すと、HTML と CSS だけを表示します。
3. <meta charset="utf-8"> を head の先頭に入れる
テキストエディタでファイルを開き、<head> のすぐ後に次の 1 行を入れます。charset を書いたほかの行があれば消します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
WHATWG の仕様では、この宣言はファイルの先頭から 1024 バイト以内に収める決まりです。W3C も、<head> の開始タグのすぐ後に置くのがよいとしています。
4. UTF-8 で保存し直して、開き直す
宣言を書いても、ファイルそのものが Shift_JIS のままなら化けます(表の 4 行目)。W3C は、UTF-8 と宣言したらファイルも UTF-8 で保存するよう書いています。メモ帳とテキストエディットでの保存の仕方は、次の節で説明します。保存したら、ブラウザやビューアーで開き直して確かめます。
Windows のメモ帳、Mac のテキストエディットで保存し直す
Windows のメモ帳
Microsoft は 2018 年 12 月 10 日の Windows Insider ブログ(Windows 10 Insider Preview ビルド 18298)で、メモ帳が新しいファイルを BOM なしの UTF-8 で保存するのを既定にし、画面の下のステータスバーにファイルの文字コードを出すようにしたと発表しました。ステータスバーに UTF-8 以外が出ていたら、保存し直します。
- メモ帳でファイルを開きます。
- 「ファイル」メニューの「名前を付けて保存」をクリックします。
- 保存のダイアログの下にある、文字コードを選ぶ欄で UTF-8 を選び、保存します。
この欄で文字コードを変えて保存する流れは、Microsoft の開発者向けの説明「INF ファイルでの一般的な Unicode 要件」が、メモ帳を例に書いています。この欄に ANSI と出ていたら、UTF-8 ではありません。Microsoft の説明では、「ANSI」は Windows のコードページのことで、コードページの表では、日本語のコードページ 932 が Shift_JIS です。このガイドでは、Windows 11 のメモ帳の画面は試していません。
Mac のテキストエディット
Apple のテキストエディットのヘルプによると、テキストエディットは HTML ファイルを、ブラウザで見るときと同じように整えた文章として表示します。そのまま編集すると、まっすぐな引用符がカールした引用符に置き換わります。コードとして直すには、次のように開きます。
- 「テキストエディット」>「設定」>「開く/保存」で、「HTMLファイルを、フォーマットしたテキストではなくHTMLコードとして表示します」を選びます。
- 文字が化けて見えるときは、「ファイル」>「開く」でファイルを選び(まだ開かずに)、ウインドウの左下の「オプションを表示」をクリックします。「標準テキストのエンコーディング」で文字コードを選んでから「開く」を押します。
- 保存するときの文字コードの既定も、同じ「開く/保存」で選べます。Apple の説明では、「標準テキストファイルのエンコーディング」が標準テキストのファイルを開くときと保存するときの既定、「HTML保存オプション」の「エンコーディング」が HTML ファイルを保存するときの既定です。
テキストエディットで文字コードを変えて保存し直す流れは、このガイドでは試していません。保存したら、手順 4 のとおり開き直して確かめてください。
iPhone・Android で化けるとき
上の表のとおり、iOS 26.5 のシミュレーターでは、「ファイル」アプリでタップしたプレビュー(クイックルック)が、宣言のない UTF-8 のファイルを 縺 型に化けさせました。Shift_JIS で宣言のないファイルは、逆に正しく出ました。iPhone で化けたら、まず <meta charset="utf-8"> が抜けていないかを疑います。
- 自分で作ったファイルなら、手順 3 で宣言を入れます。宣言を入れた UTF-8 のファイルは、iPhone のプレビューでも正しく出ました(表の 1 行目)。
- 人から届いたファイルなら、Safari で HTML ビューアー を開いて選ぶと、宣言のない UTF-8 のファイルも正しく出ます。心当たりのない送り主なら開く前に確かめ、選ぶ前に「スクリプトを動かす」のチェックを外します。
プレビューでボタンやゲームが動かないのは、文字コードとは別の理由です。iPhone で HTML ファイルを開く方法 で説明しています。Android の端末では、このガイドの試験はしていません。Android で開く手順は Android で HTML ファイルが開けないときの対処 にまとめています。
画像・CSS が出ない
HTML ファイルの中の <img src="neko.jpg"> や <link rel="stylesheet" href="style.css"> は、HTML ファイルと同じフォルダーにある別のファイルを指しています。HTML ファイルだけをメールや LINE で送ると、そのファイルは届きません。
2026 年 10 月 25 日に Chrome 155 で試すと、画像と CSS を同じフォルダーに置いたページは、どちらも読み込みました。HTML ファイルだけを別のフォルダーに移すと、画像は壊れたアイコンになり、見出しの色を決めていた CSS も効かなくなりました。
よくあるのは、次の 3 つです。
- 学校や仕事の資料で、
images/photo.jpgのようにフォルダーの中の画像を指している。 - メモ帳で
<img src="C:\Users\…\Pictures\neko.jpg">と、自分のパソコンの中の場所を書いている。ほかの端末には、その場所に画像がありません。 - AI が
index.htmlとstyle.cssを分けて作った。
HTML ビューアーで開くと、読み込めなかったファイルの名前がページの下に出ます。直し方は 2 つです。
- CSS と JavaScript を HTML ファイルの中に書き、画像は
https://から始まる URL にする。 - 画像をコードの中に埋め込む。ただし、ビューアーと Convika のボックスが受け付けるのは 2 MB までです。
iPhone の「ファイル」アプリのプレビューは、https:// の画像も読み込みません(Convika が iOS 26.3 のシミュレーターで確認、iPhone で HTML ファイルを開く方法)。スマホの相手には、ページを公開してリンクで送ります。
ファイルを作った AI には、こう頼めます。
CSS と JavaScript を 1 つの HTML ファイルの中に入れてください。画像は https:// から始まる URL にしてください。文字コードは UTF-8 にして、<meta charset="utf-8"> を入れてください。
LINE・メールで受け取ったファイルが化けるとき
LINE やメールで届くのはファイルそのもので、どう読むかは受け取った人のアプリしだいです。送った人の Chrome では正しく出て、相手の iPhone では化ける、ということが起きます(表の 2 行目)。
- 受け取った人は、送った人に
<meta charset="utf-8">を入れて送り直してもらうか、リンクで送ってもらいます。 - 送った人は、ファイルではなくリンクを送れば、相手のアプリの読み方に左右されません。
LINE で送る手順は HTML ファイルを LINE で送る方法、メールは HTML ファイルをメールで送る方法 で説明しています。iPhone の「メール」アプリで添付を開いたときの表示は、試していません。
リンクで送れば、相手の端末の設定で化けない
Convika のボックスにファイルを入れると、ビューアーと同じ決まり(BOM、<meta charset>、どちらもなければ UTF-8)で文字を読み、UTF-8 で保存します。公開したページは、文字コードが UTF-8 だと添えて届けます。WHATWG の仕様では、ブラウザはこの添え書きを、ファイルの中の宣言や地域ごとの既定より先に見ます。
2026 年 10 月 25 日に、宣言のない UTF-8 のファイルを「UTF-8」と添えて Mac の Safari 26.5.2 に届けると、言語が日本語の Mac でも正しく出ました。ビューアーで正しく出たファイルなら、リンクにしても同じ文字で届きます。
- ページ冒頭のボックス にファイルを入れるか、「コードから」に切り替えてコードを貼り付け、「プレビューのリンクをつくる」を押します。登録はいりません。
- 「プレビューを開く」で、文字が化けていないかを確かめます。このリンクは 3 分間しか開けず、スクリプトとフォームは止まっています。人に送るリンクではありません。
- 「このページを受け取る(無料・カード不要)」から登録すると、ページがアカウントに入り、スクリプトも動きます。
- 管理画面で「ページを公開する」を押し、「このページを開ける人」で「一般公開」を選んで「次へ」を押します。はじめての公開では、続いて大きな「無料で公開する」のボタンが出ます。押すとすぐに公開され、ページの下に Convika のバナーが出ます。出したくないときは、その下の「Convika のバナーなしで公開する」から Pro のお申し込み画面に進みます。お申し込み画面の大きなボタン「1日間無料で申し込む」は、カードを登録して始める Pro のトライアルで、最初の 1 日間のあとは、解約しなければ月 ¥1,800 かかります。1 回払いがよければ、そのボタンの下の「Pro 1年パス(¥4,400・1回払い)にする」で、365 日間・自動更新なしのパスに切り替えられます。無料で公開したページは、下に Convika のバナーが出ます。
- 公開したページのリンクを、LINE のトークやメールの本文に貼って送ります。
公開の画面の流れと、ほかの送り方との違いは、HTML ファイルを URL にして共有する方法 にまとめています。
よくある質問
HTML ファイルが文字化けするのはなぜ?
ファイルを保存した文字コードと、読む側が使った文字コードが違うためです。多いのは、UTF-8 のファイルに <meta charset="utf-8"> がなく、アプリが日本語の既定の Shift_JIS で読んだ場合です。2026 年 10 月 25 日の試験では、このファイルは Mac の Safari 26.5.2 と iOS 26.5 のプレビューで化け、Chrome 155 では化けませんでした。
HTML の文字化けを直すには?
<head> のすぐ後に <meta charset="utf-8"> を入れ、ファイルを UTF-8 で保存し直します。宣言はファイルの先頭から 1024 バイト以内に置く決まりです(WHATWG)。宣言だけ直しても、中身が Shift_JIS なら � が並ぶので、メモ帳なら「名前を付けて保存」で文字コードを UTF-8 にして保存し直します。
iPhone で HTML ファイルが文字化けするのはなぜ?
宣言のない UTF-8 のファイルを、「ファイル」アプリのプレビューが別の文字コードで読むためです。iOS 26.5 のシミュレーター(言語は日本語)では、宣言のないファイルが 縺薙s縺ォ縺。縺ッ のように化け、<meta charset="utf-8"> を入れたファイルは正しく出ました。作った人に宣言を入れてもらうか、リンクで送ってもらうのが確実です。
Safari で文字化けする?
はい、宣言のない UTF-8 のファイルでは化けました。macOS 26.5.2(言語は日本語)の Safari 26.5.2 で開くと 縺 型に化け、<meta charset="utf-8"> を入れると正しく出ました。同じファイルを Chrome 155 で開くと、宣言がなくても正しく出ました。
メモ帳で保存した HTML が化けるのはなぜ?
ファイルの文字コードと、ファイルの中の宣言が合っていないためです。Shift_JIS で保存したファイルに <meta charset="utf-8"> が入っていると、試したどのアプリでも � 型に化けました。メモ帳の画面の下に出る文字コードを確かめ、「名前を付けて保存」で UTF-8 にして保存し直します。
スマホで HTML ファイルの画像が表示されないのはなぜ?
画像が HTML とは別のファイルで、一緒に届いていないためです。2026 年 10 月 25 日に Mac の Chrome 155 で試すと、HTML ファイルだけを別のフォルダーに移したページは、画像が壊れたアイコンになりました。iPhone の「ファイル」アプリのプレビューは、https:// の画像も読み込みません(Convika が iOS 26.3 のシミュレーターで確認)。スマホの相手には、ページを公開してリンクで送ります。
Chrome で文字コードを変えられる?
いいえ。Chromium は 2016 年 8 月に、文字コードを手で選ぶメニューを外し、中身から判定する仕組みに置き換えました(変更「Remove text encoding UI」)。2026 年 10 月 25 日に Chrome 155 で試すと、宣言のないファイルは UTF-8 も Shift_JIS も正しく出ました。宣言と中身が食い違うファイルは化けたので、ファイルの側を直します。
HTML ビューアーで開くと文字化けは直る?
宣言のない UTF-8 のファイルなら、直ります。ビューアーは、BOM も <meta charset> もないファイルを UTF-8 として読むからです。Shift_JIS で宣言のないファイルは � 型に化けます。<meta charset="shift_jis"> と書いてあれば、その文字コードで読みます。
出典
- 「HTML Standard」4.2.5.4 Specifying the document's character encoding(WHATWG、英語、2026 年 10 月 22 日更新) (2026 年 10 月 25 日に確認)
- 「HTML Standard」13.2.3.2 Determining the character encoding(WHATWG、英語) (2026 年 10 月 25 日に確認)
- 「HTMLで文字エンコーディングを指定する」(W3C、日本語訳) (2026 年 10 月 25 日に確認)
- 「
<meta>: メタデータ要素」(MDN、2026 年 2 月 19 日更新) (2026 年 10 月 25 日に確認) - 「Announcing Windows 10 Insider Preview Build 18298」(Microsoft、英語、2018 年 12 月 10 日) (2026 年 10 月 25 日に確認)
- 「INF ファイルでの一般的な Unicode 要件」(Microsoft Learn) (2026 年 10 月 25 日に確認)
- 「コード ページ」(Microsoft Learn) (2026 年 10 月 25 日に確認)
- 「コード ページ識別子」(Microsoft Learn) (2026 年 10 月 25 日に確認)
- 「MacのテキストエディットでHTML書類を扱う」(Apple サポート) (2026 年 10 月 25 日に確認)
- 「Macのテキストエディットで文字が正しく表示されないとき」(Apple サポート) (2026 年 10 月 25 日に確認)
- 「Macのテキストエディットで設定を変更する」(Apple サポート) (2026 年 10 月 25 日に確認)
- 「Remove text encoding UI」(Chromium、英語、2016 年 8 月 30 日) (2026 年 10 月 25 日に確認)
次のステップ
HTML ページにパスワードをかけて、知っている人だけに見せる方法
JavaScript で作った画面は、ソースを開けばパスワードが読めてしまいます。ChatGPT や Claude で作った HTML をアップロードし、自分のドメインのままサーバー側で確かめるパスワード付きのページにする方法を説明します。
関連記事
- iPhone で HTML ファイルを受け取ったら文字だらけ。開く方法と、相手にリンクで送る方法iPhone の「ファイル」アプリで HTML ファイルをタップすると、開くのはブラウザではなくプレビューで、iOS 26.3 のシミュレーターで試した結果ではボタンもゲームも動きませんでした。いま手元のファイルをページとして開く方法と、送る側がリンクにして送り直す手順を説明します。
- Android で HTML ファイルが開けない。コードだけ出るときの対処と、相手にリンクで送る方法Android 16 のエミュレーターで「ファイル」アプリから HTML ファイルをタップすると、開くアプリを選ぶ画面が出ました。Chrome ではゲームもボタンも動き、「HTMLビューア」では動きませんでした。いま開く手順と、送る側がリンクにして送り直す方法を説明します。
- HTML ファイルを LINE で送って、相手のスマホでページとして見てもらう方法LINE で HTML ファイルを送ると相手のスマホしだいで開けないため、ファイルではなく URL を送ります。ChatGPT や Claude で作った HTML を URL に変えて、トークに貼るだけで見てもらう手順を説明します。
- HTML ファイルをメールで送って、相手にページとして見てもらう方法HTML ファイルをメールに添付すると、届くのはファイルで、開き方は相手のメールアプリしだいです。会社の設定で止められることもあります。このガイドは Gmail・Outlook・iPhone での添付の手順と、URL を本文に貼って送る方法を説明します。
- ChromebookでHTMLファイルを開く・作成してクラスに配る方法ChromebookでHTMLファイルを「ファイル」アプリやChrome(Ctrl + O)から開く方法、作成・編集の手順を解説。学校の端末で開けないときや、AIで作ったHTMLをURLやQRコードでクラス全員に配る方法も紹介します。
- HTML ファイルを、どのスマホでも開けるリンクで共有する方法HTML ファイルをメールや LINE で送ると、届くのはページではなくファイルです。ChatGPT や Claude で作った HTML をアップロードし、どのスマホでもタップで開けるリンクにする方法を、登録なしの手順から説明します。