UTF-8とSHIFT-JISの違いとは

はじめに

現在、見習いrubyエンジニアとして働いています。 業務中に詰まったところをアップしていきます!

初日 詰まったところ

Shift-JIS形式でのHTMLファイル作成のタスクを 振られて「??」状態でした・・・

HTMLを作成するときにmetaタグに「utf-8」を つけているな〜位しか認識していなかったので、 Shift-JIS??って感じでした汗

以下では頭の整理のためにUTF-8、Shift-JIS についてまとめていきます!

前提知識① Unicode

まず、本題に入る前に前提知識として Unicodeの話から進めていきます。

Unicodeとはえらーい人が集まって業界標準文字コード体系です。

字面だけ聞いても、なんだか「???」状態ですね。 自分なりに咀嚼すると、Unicodeは全世界の人が つかいやすいようにアルファベット、日本語、ハングル語 といった文字集合を扱う統一規格です。

つまり、全世界の人がコンピューターを用いるための 表示文字集合を統一化した訳です。 例えば、日本語のひらがなだったら「あいうえお・・・わをん」 という風に規定したわけです。

キーポイントはUnicodeはあくまでも「表示文字」だけを 規定したという事です。

前提知識② 文字符号化スキーム

但し、表示文字を規定していても、コンピューター がそのまま読める訳ではありません。 そこでどのように文字に落としこむかがポイントになります。

コンピューター→人間が読める文字(Unicode)

へのつなぎを「文字符号化スキーム」と呼びます。

本題 文字符号化スキーム UTF-8

文字符号化スキームはUTF-8UTF-16UTF-32 など色々とあるようですが、代表格は「UTF-8」のようです。 HTMLによく出てくるタグ < meta charset="utf-8" > がありますね。

これは 「utf-8形式で書いたから、ブラウザ(コンピュータ)さん、 翻訳よろしくね〜」って事です。

本題2 文字符号化スキーム② SHIFT-JIS

SHIFT-JISは日本語を表示するために 文字符号化スキームの一種です。 但し、対応する文字集合がJIS規格(日本工業規格)という 文字コード集合のために用いられています。

何故に2つの文字集合コードが混在するの???って 困惑しますね。 実はコンピューターが出来た当初、JISのように 各国で独自の文字集合ができていたようです。 で、各国が世界中の文字コード体系を一つにまとめようとして 出来たのがUnicodeとなります。

現在、インターネットで表示する文字符号化スキームは UTF-8形式が多いですが、SHIFT-JISでも表示することが出来ます。

自分でSHIFT-JIS形式で書く際は、  < meta charset="shift_jis" >と書いて、 ブラウザさんにshift-jis形式で読み込みを行うよう 指示する必要があります。