情シスの教科書

文字コード編・第2回

文字コードの種類

8:00YouTubeで見る

ひとことで言うと

文字コードには、日本で作られたShift_JISなどと、世界共通のUTF-8などがあります。今の基本は、UTF-8です。古いシステムや、エクセルの周りには、Shift_JISが残っています。

異動してきたら、最初に確かめること

チェックは、このスマートフォンのブラウザに保存されます。

解説(テキスト版)

はじめに

動画の画面:はじめに(文字コードの種類)
動画の画面:はじめに

情シスには、こんな相談が届きます。システムの連携の仕様で、文字コードは何にしますか、と事業者に聞かれる。

あるいは、オープンデータのCSVは、UTF-8とShift_JISの、どちらで出せばいいですか、と聞かれる。

どちらも、文字コードの種類の話です。第2回は、文字コードの種類をお話しします。

一言で言うと

動画の画面:一言で言うと(文字コードの種類)
動画の画面:一言で言うと

先に、一言でまとめます。文字コードには、日本で作られたShift_JISなどと、世界共通のUTF-8などがあります。今の基本は、UTF-8です。古いシステムや、エクセルの周りには、Shift_JISが残っています。

だから、データをやり取りするときは、文字コードと、BOMの有無と、改行コードを、先に決めておきます。

2つの系統

動画の画面:2つの系統(文字コードの種類)
動画の画面:2つの系統

文字コードには、大きく分けて、2つの系統があります。

一つは、日本で、日本語を扱うために作られた、日本基準の文字コードです。代表が、Shift_JISです。

もう一つは、世界中の文字を扱うために作られた、世界基準の文字コードです。代表が、UTF-8です。

役所のシステムでは、この2つが混在しています。それぞれ、順に見ていきます。

日本基準の文字コード

動画の画面:日本基準の文字コード(文字コードの種類)
動画の画面:日本基準の文字コード

まずは、日本基準の文字コードです。

土台になったのは、ASCIIです。アメリカで作られた、英字と数字と、記号だけの文字コードです。日本語は入っていません。

そこで日本では、ASCIIの英数字に、ひらがな、カタカナ、漢字を加えた文字コードが作られました。漢字は、JISの規格で決められた、およそ6千字です。

Shift_JIS、EUC-JP、ISO-2022-JPといった種類があり、それぞれ、パソコン、昔のサーバー、メールで、よく使われてきました。どれも、日本語と英数字しか扱えない文字コードです。

Shift_JISと、機種依存文字

動画の画面:Shift_JISと、機種依存文字(文字コードの種類)
動画の画面:Shift_JISと、機種依存文字

役所でいちばん長く使われてきたのが、Shift_JISです。ただし、ウィンドウズのShift_JISは、正確には、CP932という、少し広げた版です。

CP932には、丸で囲んだ数字や、ローマ数字、はしごだかの「髙」や、たつさきの「﨑」などが、追加されています。

こうした文字は、ほかのシステムの文字コードにはないことがあり、機種依存文字と呼ばれてきました。送った先で、四角や、別の文字になることがあります。半角のカタカナも、同じように、連携でつまずきやすい文字です。

世界基準の文字コード

動画の画面:世界基準の文字コード(文字コードの種類)
動画の画面:世界基準の文字コード

ところが、国ごとに文字コードがばらばらだと、海外とのやり取りや、いくつもの言語を扱うときに困ります。

そこで作られたのが、世界中の文字を、一つにまとめたUnicodeです。日本語も、中国語も、アラビア語も、絵文字も入っています。

Unicodeを、ファイルに保存するときの形には、いくつかの種類があります。いちばん使われているのが、UTF-8です。ウェブのページや、オープンデータの標準になっています。

もう一つが、UTF-16です。ウィンドウズの内部や、一部のシステムで使われています。

Unicodeは、Shift_JISより、ずっと多くの文字を収めています。Shift_JISの文字は、ほぼすべてUnicodeにありますが、その逆は成り立ちません。

BOM

動画の画面:BOM(文字コードの種類)
動画の画面:BOM

UTF-8のファイルで、よく出てくるのが、BOMです。

BOMは、ファイルのいちばん先頭に付ける、これはUTF-8です、という目印です。中身は、EF、BB、BFの、3つの番号です。

前回お話ししたとおり、日本語のエクセルは、BOMの付いていないCSVを、Shift_JISとして読むことがあります。BOMを付けておけば、UTF-8として開いてくれます。

ただし、BOMが付いていると、先頭の項目の名前がずれて、読み込めなくなるシステムもあります。付けるか付けないかは、受け取る側に合わせて決めます。

改行コード

動画の画面:改行コード(文字コードの種類)
動画の画面:改行コード

文字ではありませんが、もう一つ、連携でよくつまずくのが、改行コードです。

行の終わりを表す印にも、種類があります。ウィンドウズでは、CRとLFの2つを並べるのが一般的です。それ以外の多くの環境では、LFだけです。

受け取る側が、違う改行コードを想定していると、全部が1行につながったり、行の終わりに余分な文字が残ったりします。

自治体の現場では

動画の画面:自治体の現場では(文字コードの種類)
動画の画面:自治体の現場では

では、自治体の現場では、どうなっているでしょうか。

長く使われてきた基幹システムには、メーカー独自の文字コードを使っているものもあります。ほかのシステムとつなぐときは、その間で、文字コードの変換が入ります。

一方で、クラウドのサービスや、ウェブのシステムは、ほとんどがUTF-8です。オープンデータも、UTF-8で出すのが基本です。

つまり、古いシステムと新しいシステムの境目で、文字コードの変換が起きます。文字化けや、文字の欠けが起こりやすいのは、この境目です。

連携のときに決めること

動画の画面:連携のときに決めること(文字コードの種類)
動画の画面:連携のときに決めること

だから、システムを連携するときや、データの作成を委託するときは、仕様書に、次の4つを書いておきます。

一つ目は、文字コードです。UTF-8か、Shift_JISか。二つ目は、BOMの有無です。三つ目は、改行コードです。

そして四つ目は、文字コードにない文字が出てきたときの扱いです。エラーにするのか、決めた記号に置き換えるのか、一覧にして報告してもらうのかを決めます。

現場でよくある誤解

動画の画面:現場でよくある誤解(文字コードの種類)
動画の画面:現場でよくある誤解

現場でよくある誤解を、3つ挙げます。

一つ目。UTF-8に統一すれば、文字の問題はすべて解決する、という誤解です。古いシステムとの境目では、変換が残ります。次回お話しする外字も、別の問題として残ります。

二つ目。Shift_JISは、もう使われていない、という誤解です。エクセルや、古いシステムとのやり取りでは、今も現役です。

三つ目。CSVなら、どのシステムでも読める、という誤解です。文字コードや、BOM、改行コードが合っていなければ、読めません。

異動してきたら最初に確かめること

動画の画面:異動してきたら最初に確かめること(文字コードの種類)
動画の画面:異動してきたら最初に確かめること

では、異動してきたら、まず何を確かめればいいでしょうか。

一つ目。庁内の主なシステムが、それぞれ、どの文字コードを使っているかです。特に、基幹システムと、ほかのシステムとの連携の部分です。

二つ目。連携や委託の仕様書に、文字コード、BOM、改行コード、文字コードにない文字の扱いが書かれているかです。

三つ目。オープンデータや、外部に配るCSVの文字コードです。UTF-8で出せているかを、確かめてください。

理解度テスト

3問です。答えを選んで、「答え合わせ」を押してください。

問1Windowsで使われてきた「Shift_JIS」について、正しいものはどれですか。
問2UTF-8のファイルの「BOM」について、正しいものはどれですか。
問3システムの連携やデータの作成を委託するとき、仕様書に書いておくべきこととして、当てはまらないものはどれですか。

結果は、このブラウザに保存されます。成績ページで「ふっかつのじゅもん」を作ると、別の端末でも続きから使えます。

チャプター

文字コード編のほかの回

© 合同会社Pons(羽鳥達郎)|自治体情シスの教科書(sysad.pons-llc.com)
研修や勉強会などに、ご自由にお使いください。印刷・配布・スライドへの転載のときは、この著作者の表記を残してください。