こんにちは。

午前中に一つ提案を終えて一息ついている岡安です。

普段のお仕事で、様々なクラウドサービスに触れる機会がありますが、中小企業への支援を行っていると、結構細かいポイントでつまづいてしまっている姿を見かけることも結構あるのです。

クラウドの活用のかなり前段階で挫折してしまうのはすごくもったいないなと思っていますので、その「つまづき」を少し減らすための基礎的な知識について、記事を書いてみたいと思います。

思いつくままに書いていきますので、ちゃんとシリーズものになるかは怪しいですが、お付き合いください。

今回の記事は、「文字コード」についてです。

 

詳しく知る必要がない人向けの最低限押さえておくべきポイント

ほんとに必要なことだけ押さえておきたいという人は、とりあえず、文字コードの種別としては

・Windows系のデータは「Shift_JIS」
・Mac系のデータは「Unicode(UTF-8)」
・Unix系のサーバのデータは「EUC-JP」

を覚えておけばOKです。

例えば使っているPCがWindowsの場合には、クラウドにデータをアップする際に文字コードを確認される場合、「Shift_JIS」を選ぶということになります。

実際の文字コードと選択した文字コードに誤りがあるといわゆる「文字化け」した状態となって、訳の分からないデータがアップされてしまいます。

もう一つ押さえておくべきなのは、文字化けを引き起こす文字。

機種依存文字:①②③、ⅠⅡⅢ,㈱など
半角カナ:アイウエオなど

この辺りは極力使わない方がよいでしょう。

機種依存文字は、Windows上で変換候補を出すと「環境依存」と右側に出ますので、出ているものは使わないようにしましょう。

 

文字コードとは?

詳しく知りたい方向けにもう少し解説を続けます。

パソコンやクラウドサービスなどを使っていると、「文字コード」という言葉を目にする機会があると思います。

普段はそれほど意識する必要はありませんが、

・クラウドサービスにデータをアップロード、もしくは、データをダウンロードする
・WindowsとMacの間でファイルをやり取りする

といった際に、対応が必要なことがあるので、基礎的な知識としてぜひ押さえておいてほしいところです。

この「文字コード」とは、なんなのでしょうか?

Wikipedia先生に聞いてみると、こんな回答をいただけました。

「文字コードとは、コンピュータなどの電子媒体において、文章を画像などの図形データとして扱わずに、テキストの形式で扱う場合に、その各文字(単一の文字でない場合もある)に対して持っているコードのことである。」

なんとなくは意味は伝わってきますでしょうか?

パソコン(電子機器)では、基本的に0か1のデジタル信号であらゆるデータが保存されています。

パソコンの画面で文字を表現する場合には、文字をデジタルデータとして保存し、それを必要に応じて読みだして、モニタ上に適切に表示させる必要があります。

この際パソコン側では、文字をそのまま認識するのではなく、「文字コード」を認識し、そのコードにあった描画イメージをモニタ上に表現するということになるわけです。

つまりパソコン側が文字を認識して判別するためのデータを文字コード(場合によってはコード体系全体をさします)と呼び、そのコードをパソコンが解釈して、人間が認識できる文字として表示しているというわけです。

この文字コードが正しく認識されないと、いわゆる「文字化け」といった問題に遭遇することになります。

 

文字化けはなぜ起こるの?

では、文字化けはどのようなことが原因で起こるのでしょうか?

これは、データを扱っている環境(パソコンやサーバー)の違いに起因します。

世界中で使われているパソコンやサーバーが同じ環境で、その環境で使われている文字コードが同じであれば、問題は起こりません。

しかし実際には、例えばWindowsとMacでは使っている文字コードが異なるため、Windowsで作成した文字データをそのままMacで表示させようとすると問題が起こることがあるのです。(ソフトウェアが文字コードを判別して自動で変換してくれるといったこともあるので、必ず問題が起こるわけではありません)

 

文字化けが起こる原理

具体例を考えてみましょう。(あくまで例であり、実際の文字コードとは異なります)

環境Aで、「字」という言葉を指すコードが01だったとしましょう。

環境Bでは、コード01が「絵」という文字を指していた場合、環境Aで作成したデータ【「字」(コード01)】は、環境Bでは、【「絵」(コード01)】として表示されてしますのです。

このときコード自体は、どちらの環境でも同じであることが分かると思います。

同じコードでも、それを読み取る側の環境が異なることで、まったく違った文字が描画されてしまうのが、文字化けが起こる原理です。

余談ですが、似たような現象は日常の言葉でも起こります。

小学生くらいのときに、世界地図などを見ていて(日本語として)おかしな地名を探した経験はないでしょうか?

有名なところでは「エロマンガ島」とか「スケベニンゲン」なんかがありますよね。

あれも現地の人にとっては、普通の地名ですが、日本人の小学生男子が見ると、「すげー地名見つけたぞ、ヒャッハー!」となる訳です。

これは、同じ音(文字コード)でも、解釈する言語(環境)によって意味が異なってしまうことから発生する現象です。

 

ちなみにどうでもよい話ですが、「エロマンガ島」はその名前のイメージに反して、かなり鬱な歴史を持つ島ですので、興味があれば調べてみてください。

 

文字化けを防ぐにはどうしたらいいの?

ではいわゆる文字化けを防ぐにはどのようにすればよいのでしょうか?

クラウドサービスに関連するものとしては、対応はそれほど難しくはありません。

・データをアップ/ダウンロードするときに適切な文字コードを選択する
・機種依存文字や半角カナは使用しない

の2つを守れば、問題はほとんど起きません。

 

クラウドサービスに対して、Windowsからアップロードする際には、Shift-JISのデータとしてアップする、逆にダウンロードする場合には、Shift-JISとしてダウンロードするということをすればOKということですね。

日本初のサービスであったり、日本語化がきちんとされているクラウドサービスであれば、意識する必要もないことが多いでしょう。

なお、機種依存文字というのは、特定の環境のみで使うことができる文字です。

よく使われる機種依存文字では、①②③などがあります。

また、半角カナは機種依存文字ではありませんが、文字化けの原因となることが多いので、注意しましょう。

見た目的にもあまりよくないですしね。

 

まとめ

今回の記事では触れませんが、文字コードの歴史と世界は思ったよりも奥深く、それだけで本が一冊書ける(実際にそういう本がある)ものです。

普段データを扱う上では、意識する必要はありませんが、「なんで何度やってもデータが文字化けするんだよ!!(怒)」となったら、

・文字コードの指定が間違っている
・文字化けしやすい文字がどこかに使われている

の2つを疑うと解決の糸口を見つけられるかもしれません。

ではでは。