作成しておいたHTMLページをスマホのテキストエディタで表示したときに6つあるHTMLファイルのうち2つが文字化けしてることに気づく。, PCでは文字化けしないのになんでスマホでは文字化けしてんだろう?と疑問に思いながら、文字化けに気づいた時点では原因が何も浮かばない。, 勉強用のHTMLページなのでしばらく放置していましたが、最近やっぱり気になるのでHTMLページの文字化けを直そうと思い立つのです。, HTMLページの文字化けを直したいと思い立ったわけですが、文字化けを直すために私がやったことの流れを一通り記事にしておきます。, まずは「文字化けを直す前のHTMLの表示がどんな感じで文字化けしていたのか」そして「文字化けを直すためにHTMLファイルで確認したこと」を紹介します。, 文字化けを直したいと思ったときに、文字化けを直すために必要な確認ポイントが分かると、文字化けの解決の糸口として役立ちます。, 文字化けを直す前のHTMLページでは、文字化けした文字がすべて意味不明な文字の羅列になってしまいます。以下の画像のようにです。, PCのChrome環境では文字化けすることがなかったのですが、スマホ(iPhone)のHTMLエディタアプリでHTMLページをプレビューした場合に文字化けしました。, リロードすると文字化けが直ることもあるのですが、次にHTMLページを表示すると文字化けしてしまいます。, このように文字化けしてしまった場合は、ブラウザでHTMLページの文字化けしてる問題の場所を確認しても解決はしないので、表示したHTMLページから一度離れてHTMLファイル内を確認します。, 1箇所目の「文字化けしてるHTMLのhead要素」では、metaタグでcharsetという記述があるか確認します。charsetがある場合はcharsetの値がUTF-8になってるか確認します。, 私の場合は、文字化けするHTMLページにcharsetと値を記述していないという凡ミスが原因で文字化けしてました。, HTMLのhead要素にmetaタグでcharsetと値があるけど文字化けしてる場合は、2箇所目の確認場所として文字化けしてるHTMLファイルを確認します。, HTMLファイルの文字コードとHTMLのheadで指定するcharsetの値の文字コードが一致してる必要があるためです。, HTMLページで文字化けするほとんどの場合は、上記説明の2箇所の文字コードが「一致してるか」「一致していないか」を確認することで文字化け解決ができます。, 文字化けする場所を確認してHTMLのheadにcharsetがない、もしくはcharsetと値も記述してるけど、HTMLファイルの文字コードとheadのcharsetの値が違う場合は、2つの文字コードの違いを直すことで文字化けが解決します。, 文字化けの解決方法として必要になる「文字コードをHTMLファイルのhead側でどのように記述するのか」また「HTMLファイル側の文字コードを変更するやり方」を説明します。, HTMLページで文字化けするheadにcharsetを記述する場合は、文字化けの確認をしたとき、headにmetaタグでcharsetを記述してない、もしくはcharsetの値がUTF-8で指定してない場合です。, charsetの記述は以下のように記述して文字化けするHTMLページのheadに記述します。, HTMLのmetaタグを使用してmetaタグの属性としてcharsetを書きます。そしてcharsetの値にはUTF-8の文字コードで表示するように指定します。, charsetは文字化けしてたHTMLページの文字をどの文字コードで表示するか指定するために記述するもの。, charsetの値になるUTF-8は文字コードの一種で文字を数字変換してコンピュータが解釈できるように、文字に割り当てられてる番号です。今回のHTMLページの文字化けで言えば、文字化けするHTMLページをUTF-8の文字コードでブラウザに識別してもらうため。, 文字化けするheadにcharsetをUTF-8にして記述したらファイルを保存します。, 保存してから文字化けするHTMLページを表示して文字化けを直すことができていれば、そのHTMLページで文字化けが解決です。, HTMLページで文字化けするheadにcharsetを記述しても文字化けが直らない場合には、HTMLファイル側の文字コードをUTF-8にしたHTMLファイルにします。, それぞれ使用してるテキストエディタにより文字コード選択方法に違いがあるので、適宜でエディタの文字コード設定を確認して文字化けするファイルをUTF-8します。, 「UTF-8」の文字コードにするときは「BOMなし」の「UTF-8」にするようにします。, 上の画像はWindowsのメモ帳でHTMLファイルを作成してみた場合ですが、メモ帳に文字化けしてるHTMLページの記述を新規作成で貼り付けて保存するときに文字コードを変更できます。, Macの場合はメモ帳ではなくテキストエディットですが、メモ帳と同じように文字化けしてるHTMLページの記述を新規作成で貼り付けて保存するときに文字コードを変更できます。, HTMLファイルの文字コード変更は、文字化けするHTMLファイル内の記述をすべてコピーし、新規でHTMLファイルを作成して文字コードをUTF-8で保存するといいと思います。, 軽い参考程度ですが、UTF-8のHTMLファイルをShift-JISに変更してHTMLページで文字化けするように試してみました。それが以下の画像です。, そして文字コードShift-JISで文字化けしたHTMLファイルを、さらに文字コードをUTF-8に変更し直して文字化けを直そうとしたのですが、文字コード変更ができませんでした。さらにコードが途中から消えてしまう。, なので念のためにHTMLファイルの文字コードを変更するときは、HTMLファイルをコピーしてバックアップしておき、新規ファイル作成で文字コードをUTF-8にするのがいいと思うのです。, このようにHTMLページで使用する文字をUTF-8の文字コードで統一することで、文字化けを直すことができ解決することができます。, HTMLページの文字化けを直して解決できるようにと説明しましたが、ある程度は文字化けする原因を理解しておくことで、今後また文字化けを直すことがあるときに悩むことないように活かしたいです。, ざっくり説明ですが、文字コードには文字一つ一つに与えられている固有の文字コードがあります。コンピュータは番号で識別するのが大好きなので、HTMLページの文字も文字に割り当てられてる番号で識別します。, 文字コードには種類があって「UTF-8」や「Shift-JIS」「EUC-JP」など種類がありますが、それぞれの文字コードの文字に対応しているコード番号は違います。, 例えば日本語の「あ」の場合、UTF-8は「E38182」、Shift-JISは「82A0」、EUC-JPは「A4A2」とコードが決まっています。, そのため指定する文字コードが違うことでHTMLページの文字をブラウザが解釈できない場合に文字化けの原因になってしまう仕組みです。. (e in b.d))if(0>=d.offsetWidth&&0>=d.offsetHeight)a=!1;else{c=d.getBoundingClientRect();var f=document.body;a=c.top+("pageYOffset"in window?window.pageYOffset:(document.documentElement||f.parentNode||f).scrollTop);c=c.left+("pageXOffset"in window?window.pageXOffset:(document.documentElement||f.parentNode||f).scrollLeft);f=a.toString()+","+c;b.b.hasOwnProperty(f)?a=!1:(b.b[f]=!0,a=a<=b.e.height&&c<=b.e.width)}a&&(b.a.push(e),b.d[e]=!0)};p.prototype.checkImageForCriticality=function(b){b.getBoundingClientRect&&q(this,b)};h("pagespeed.CriticalImages.checkImageForCriticality",function(b){n.checkImageForCriticality(b)});h("pagespeed.CriticalImages.checkCriticalImages",function(){r(n)});var r=function(b){b.b={};for(var d=["IMG","INPUT"],a=[],c=0;c=a.length+e.length&&(a+=e)}b.g&&(e="&rd="+encodeURIComponent(JSON.stringify(s())),131072>=a.length+e.length&&(a+=e),d=!0);t=a;if(d){c=b.f;b=b.h;var f;if(window.XMLHttpRequest)f=new XMLHttpRequest;else if(window.ActiveXObject)try{f=new ActiveXObject("Msxml2.XMLHTTP")}catch(k){try{f=new ActiveXObject("Microsoft.XMLHTTP")}catch(u){}}f&&(f.open("POST",c+(-1==c.indexOf("?")?"? 「Microsoft Edge」 でWebメールの添付ファイルを保存する際にファイル名に日本語が含まれているとファイル名が文字化けしてしまします。 現象の起きたOS: Windows10 バージョン 1803 (OSビルド 17134.48) Windows10 バージョン 1803 (OSビルド 17134.81) 文字化けが起きていました。 コンピューターは、最終的には「0」と「1」の二進数で解釈しています。 16進数や10進数で表すこともできますが、それらは全て数字です。 つまり、人間の言葉である「あ」とか「A」とかをそのまま解釈できません。 だから、文字1つ1つをそれぞれ固有の数値(コード)で管理しています。 例えば、「あ=45番ね!」、「A=20番ね!」という感じです。 この固有の数値を「文字コード」と言います。 そして、それを一覧にした … Windows10 バージョン 1803、Windows10 バージョン 1709 どちらのバージョンでも応答ヘッダの文字列は同じでした。 (adsbygoogle = window.adsbygoogle || []).push({}); iPhoneでHTMLエディタの無料アプリを使用してみたのですが、意外とPCではない環境でHTMLやCSSのコーディングするのも悪くないかなと思いまし[…], ブログに目次があると、記事を読みに来てくれた方が最初に目次をみることで、どんな内容のことが書いてあるのかページ概要を把握できます。 検索ユーザーは少し[…], HTMLでinput要素のtype属性で使える属性値の数が多くて「絶対に覚えていられんよ」ということになったので、HTML5から追加されたtype属性[…], HTMLで複数のページを作成してindex.html以外も作成していこうと思います。 基本的な作成しかしないので、HTMLで複数のページを作成するとき[…], WordPressとWeb関係のことを趣味的に学んでます。独学なので記事で間違ってることがあればご指摘ください。記事が少しでも誰かの参考になればと思います。そろそろ独学知識を何かに活かせないかひっそりと模索中, 文字化けするHTMLページをUTF-8の文字コードでブラウザに識別してもらうため。, HTMLファイルをコピーしてバックアップしておき、新規ファイル作成で文字コードをUTF-8にするのがいいと思うのです。.