ブラウザで開いたら日本語が「譁�蟄怜喧縺�」のような謎の記号に——この文字化け、初心者がほぼ全員一度は踏みますが、原因は2つしかありません。HTMLの宣言(metaタグ)とファイルの保存形式、この2か所を確認すれば必ず直せます。
結論:この2つをそろえる
文字化けの正体は、「ファイルの保存形式」と「ブラウザの読み方」の食いちがいです。両方を標準のUTF-8にそろえれば直ります。
- HTMLの
<head>の先頭に<meta charset="UTF-8">があるか - ファイルが実際にUTF-8で保存されているか
順番に確認していきましょう。
確認1:metaタグはあるか
<head>の中、できるだけ先頭にこの1行があるか確認します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>わたしのページ</title>
</head>この行は「このファイルはUTF-8という変換表で書いてあります。そのつもりで読んでください」という、ブラウザへの案内です。案内がないと、ブラウザは読み方を推測するしかなく、推測が外れると化けます。
確認2:ファイルはUTF-8で保存されているか
metaタグが正しくても化けるなら、ファイル自体が別の形式で保存されています。metaタグはあくまで宣言で、実際の保存形式を変える力はありません。「UTF-8と書いてあるのに中身はShift_JIS」だと、堂々と化けます。
VSCodeなら、いま開いているファイルの保存形式は画面右下に出ています。
- VSCodeの右下を見る——
UTF-8と出ていれば保存形式はOK Shift JISなど別の表示なら、その表示をクリック- 「エンコード付きで保存」を選ぶ
- 一覧から「UTF-8」を選んで保存
これでファイルがUTF-8で保存し直され、ブラウザを再読みこみすれば直ります。
逆パターン:エディタで開いたら化けていた
ブラウザではなく、VSCodeで開いた時点で化けていることもあります。ダウンロードした昔の素材や、他の人からもらったファイルにありがちです。
これは「Shift_JISで保存されたファイルを、VSCodeがUTF-8として開いた」状態。ファイルは壊れていないので安心してください。
- 右下のエンコード表示(
UTF-8)をクリック - 「エンコード付きで再度開く」を選ぶ
- 「Japanese (Shift JIS)」を選ぶ
正しく表示されたら、今後のために「エンコード付きで保存」でUTF-8にして保存し直しておきましょう。
CSSファイルが化けるとき
HTMLは直ったのに、CSSに書いた日本語(コメントやフォント名)だけ化ける——そんなときはCSSファイルの保存形式も確認します。直し方は同じで、VSCodeでUTF-8で保存し直すだけです。
@charset "UTF-8"; /* CSSファイルの1行目に書く宣言。念のための保険 */文字化けチェックリスト
上から順に確認すれば、どこかで必ず直ります。
<meta charset="UTF-8">が<head>の先頭にある- スペルミスがない(
charset・UTF-8) - VSCodeの右下が
UTF-8になっている(違ったら「エンコード付きで保存」) - 直したあとブラウザを再読みこみした
- それでも化けるなら、化けているのはどのファイルか特定する(HTML本文か、CSSのコメントか)
まとめ
- 文字化けの正体は保存形式と読み方の食いちがい——
<meta charset="UTF-8">とファイルのUTF-8保存をそろえれば直る - metaタグは宣言だけ——「書いたのに化ける」ならファイル自体の保存形式(VSCode右下)を疑う
- エディタで開いて化けていたら、保存せずに「エンコード付きで再度開く」——化けたまま保存すると戻せない
原因はたった2か所と知っていれば、文字化けはもうこわくありません。