こんにちはあおまるです。
自身の知識定着のために今までに学んだことをメモ感覚で残そうということでやっていってます。
2発目は文字コードついて
そーいえば文字コード恥ずかしながらあまり意識せずUTF-8だね〜て感じであんまり考えたこともなかったのでちょっとまとめてみました😂
文字化けとは
インターネットを見るときやファイルを開いたときにこんなになる現象↓
これが文字化け!
文字化けの原因は『文字コード』というのがおかしいから。
文字化けとは
0と1の機械語を実際の文字に変換するときに使う対応関係を文字コードという。
文字コードの種類にはUTF-8 Shift_JIS ASCll などさまざまなものがある。
ファイルを保存するとき、通信する時などには文字コードを指定する。
Macでは基本的にUTF-8 WinはShift_JISが標準で使われている。
例
UTF-8の場合
あおまる -> 0x56fg67gfd
Shift_JISの場合
あおまる -> dfvgr4536bfv
文字コードによって人間にも分かりやすい16進数に変換することができる。
文字化けの原因
UTF-8 Shift_JISで変換されてしまった場合
あおまる -> 0x56fg67gfd ⇨ あおおに
(文字コードが違うと違った文字で変換されてしまう)文字化け発生!!
ファイルを保存したときUTF-8で保存したとする。
->そのファイルをブラウザで開いくとき保存したファイルの文字コードと同じ文字コードで変換し直してあげて表示しなければいけないが
ブラウザ側で誤ってShift_JISで変換し直してしまった場合に文字化けがおこる😧
ブラウザが側で文字コードが決まる優先順位
違う文字コードというのをどうやって判別しているかというと下記の優先順位で判別される。
1.サーバーからのレスポンスヘッダのcharset
2.HTML内のmataタグのcharset
1の場合サーバー側で保存されているファイルがShift_JISで保存されている場合に
サーバー側の設定で強制的にUTF-8で保存されていると間違って通信してしまったとき
ブラウザがはUTF-8の文字コードで表示してしまうので文字化けが発生する。
まとめ
文字化けとは文字コードが誤って変換されて表示している状態のこと。
文字コードは日本語などの言語を機械語に変換したり戻したりするときに使われる対応表のこと。
文字コードにはUTF-8 Shift-JISなどさまざまある。
ファイルを保存するときは必ず文字コードを指定する。
ブラウザはサーバーのレスポンスヘッダやHTMLに書かれた文字コードを元に機械語から人間の言語へ変換し直してページが表示される。
なんとなくで文字コードについてはあまり意識してなかったので改めていい勉強になりました〜🙃