🍈

文字コードって何のためにあるの??エクセルファイルをスプシで開いた時に起きる文字化けの原因

2024/04/08に公開

文字化けの原因

Excelで作成したファイルをGoogleスプレッドシートで開いた時に文字化けしてることがありますよね。解決策は文字コードをShift_JIS → UTF-8、またはその逆に修正すればOKなのですが、文字コードって何のためにあるんだろう?と疑問に思う方もいらっしゃいますよね。

文字コードとは??

文字コードとは文字に割り当てた番号のこと。
文字をファイルに保存する時やインターネットでやり取りする時に、この番号で行います。

文字コードって何のためにあるの??

結論、人間とコンピューターがコミュニケーションを取るための翻訳言語みたいなものです。
プログラミングは、人間がコンピューターに指示して機能してもらうための言語ですよね。数字しか扱えないコンピューターと、文字を基本にしている人間がコミュニケーションを取るためには、文字コードのような「日本語の”あ”は数字の”1”に変換する」みたいな取り決めが必要となります。

具体例

例えば、「I'm a perfect human」 を文字コード(UTF-8)で表した結果は以下のようになります。

'I': 73,
 "'": 39,
 'm': 109,
 ' ': 32,
 'a': 97,
 'p': 112,
 'e': 101,
 'r': 114,
 'f': 102,
 'c': 99,
 't': 116,
 'h': 104,
 'u': 117,
 'n': 110}

文字コードの種類

実は文字コードにはいくつか種類があって、国の言語によって変わります。世界共通のものもあります。

ASCII(アスキー)

文字コードの元祖。(厳密に言えば更なる元祖もいますが。)
詳細はこちらを参考に。

Shift_JIS

日本語に対応した文字コードの一つ。
Windowsが標準の日本語文字コードとして採用したことから広く普及しました。

Unicode

世界共通の国際標準規格。
日本以外でも、世界には様々な文字コードがあります。ただ、その国々で独自の文字コードを使ってしまうと、他国と仕事をするときに文字化けが頻発してしまいますよね。そこで誕生したのがUnicodeです。メジャーな言語のほとんどを網羅しており、貨幣記号などに使われる記号や絵文字も登録されています。これにより言語が異なる国にデータを送っても、文字化けを恐れる心配が減りました。

UTF-8

Unicodeがベースとなった、インターネット上で最も広く使用されている文字コード。
世界中のほぼすべての文字をサポートしています。

スプシはUTF-8、ExcelはShift_JIS。

Googleスプレッドシートは、Webベースのアプリケーションであり、国際的な使用を考慮してUTF-8を採用しています。Microsoft Excelは、特に日本で使用される際にShift_JIS(日本語の文字コード)を使用することがあります。だからエクセルデータをスプシで開くと文字化けしてしまうのです。

今回は以上です。参考になれば幸いです。

Discussion