資格道場 › レッスン一覧 › 情報メディア
情報メディア・4/5・12分

文字コード・コード化とデータの見せ方

ゴール

ASCII・シフトJIS・EUC・Unicode(UCS-2)の特徴を見分け、コード表から文字を2進数に直せるようになる。あわせて CSV の形式、JAN・ITF・QR コードの違い、目的に合うグラフの種類を選べるようになる。

文字コードの取り違えは、実務でもよくある「文字化け」やCSV取り込み失敗の原因です。試験では「どのコードの説明か」「どのグラフが適切か」を、選択肢どうしで説明を入れ替えて問う形が定番です。

このレッスンで稽古する(用語チェック・過去問)

文字コードとは:文字に振った「出席番号」

文字コードとは、文字ごとに番号(2進数)を割り当てた対応表のことです。コンピュータは数字しか扱えないので、「A は 65 番」のように決めておきます。クラスの出席番号と同じで、名簿(=文字コード)が違えば同じ番号でも別人になります。これが文字化けの正体です。

1バイト(8ビット)で表せるのは最大 256 種類です。英数字なら足りますが、漢字は数千字あるので 2バイト以上が必要になります。この「何バイトで表すか」が、各コードを見分けるポイントになります。

1文字を何バイトで表すか010000011バイト=8ビット → 最大256種類英数字(A・2 など)1バイトで足りる漢字(数千字)2バイト以上が必要
1バイトで表せるのは最大256種類。英数字は1バイトで足りるが、数千字ある漢字には2バイト以上が必要になる。

4大文字コードの比較(最重要)

試験では、各コードの説明を別のコードの説明と入れ替えた選択肢が並びます。下の表の「キーワード」で見分けてください。

コード キーワード バイト数 漢字
ASCII 米国規格。英数字・記号・制御文字(改行など、表示されない命令用の文字) 7ビット(128文字) 規定なし
シフトJIS パソコン(Windows など)で普及。1バイト目で漢字かどうか分かる 英数字1・漢字2 あり
EUC UNIX で使われる(Extended Unix Code) 英数字1・漢字2 あり
Unicode 世界中の文字を1つの体系で扱う国際標準 方式による(下表) あり

Unicode には、番号をバイト列に直す方式(符号化方式)が複数あります。

方式 特徴
UCS-2 全文字を2バイト(固定長)で表す初期の方式
UTF-8 1〜4バイトの可変長。英数字は1バイトで ASCII と互換。Web の標準

覚え方:「UNIX なら EUC」「1バイト目で判別ならシフトJIS」「世界標準なら Unicode」「全部2バイトなら UCS-2」「漢字なしなら ASCII」。

コード表の読み方

コード表は、上位4ビットを列、下位4ビットを行で表すのが普通です。文字の位置を探し、その列の4ビットのあとに行の4ビットを並べれば、その文字の8ビットのコードになります。

過去問の表は ASCII と同じ並びで、「A」は 0100 0001(16進で 41)、「2」は 0011 0010(16進で 32)です。数字の「2」は数値の 2(0000 0010)ではなく、文字としての 2 なので 0011 が付きます。

コード表から文字を2進数に直す上位4ビット(列)下位\上位0011010000011A00102B下位4ビット(行)「A」01000001=16進で 41列の4ビット行の4ビット「2」00110010=16進で 32
文字の位置を探し、列(上位4ビット)のあとに行(下位4ビット)を並べると8ビットのコードになる。

CSV形式

CSV(Comma-Separated Values)は、データをコンマ(,)で区切り、レコード(1件分のデータ)を改行で区切るテキスト形式です。文字データは「"」(引用符)でくくることもあります。計算式・書式・画像は記録できません。

形式 区切り
CSV コンマ
TSV タブ
HTML / XML タグ

「タブ区切り」「タグを挿入」「書式も記録」と書いてある選択肢は CSV の説明ではありません。

CSVファイルの中身1001,"佐藤",80 ⏎1002,"鈴木",75 ⏎1003,"高橋",90 ⏎1001佐藤801002鈴木751003高橋90コンマ(,)=項目の区切り改行(⏎)=レコードの区切り
CSVはコンマで項目を、改行でレコードを区切ったテキストで、読み込むと表の形に並ぶ(データは例)。

バーコードと2次元コード

商品や荷物に印刷するコードは、**1次元(横方向にだけ情報を持つ)と2次元(縦・横の両方に情報を持つ)**に分かれます。2次元コードのほうが多くのデータを記録できます。

コード 次元 主な用途・特徴
JAN 1次元 日本の共通商品コード(13桁または8桁)。最後の1桁がチェックディジット
ITF 1次元 段ボール箱など物流用の14桁のコード
Code128 1次元 英字も表せる(ASCII の128文字すべて)
QR 2次元 3隅の位置検出パターンで回転角度と読取り方向を認識。数字なら7千字以上、漢字も千字以上入る

チェックディジットは、ほかの桁から計算して付け足す検査用の数字です。読取りミスをレジ側で見つけるために使います。

PLU(Price Look Up)は、バーコードには商品コードだけを入れ、価格は店のシステム(POS)に問い合わせる方式です。「バーコードの中に価格を含む」と書いてあれば誤りです。

PLU:価格はPOSに問い合わせるバーコード商品コードだけレジ① 問い合わせPOS価格を管理② 価格を返す×「バーコードに価格を含む」は誤り
PLUではバーコードに商品コードだけを入れ、価格はレジがPOSに問い合わせて受け取る。

グラフは「何を見せたいか」で選ぶ

グラフ問題は「目的」と「グラフ」の組合せを入れ替えて出題されます。下の表を目的から引けるようにしておきましょう。

見せたいもの グラフ
構成比(全体に占める割合) 円グラフ・帯グラフ(帯は複数年の比較にも向く)
構成比と、その内訳 二重円グラフ
時間の推移 折れ線グラフ
内訳ごとの推移と合計の推移を同時に 折れ線層グラフ(積み重ねた折れ線)
一定期間の売上実績・業績傾向 Zグラフ(月次・累計・移動合計の3本の線がZ字形になる)
複数項目のバランス レーダチャート
2つの量の相関 散布図
2つの軸で見た位置づけ ポートフォリオ図

たとえば「メーカ別の市場構成比」なら帯グラフ(または円グラフ)、「障害の種類別件数と総件数の推移」なら折れ線層グラフです。

例題 1

コード表から「A」「2」を2進数にする

次の表は JIS コード表の一部である。二つの文字 “A” と “2” をこの順に JIS コードで表したものはどれか。
JIS コード表(一部)。ビット並びは b8 b7 b6 b5 | b4 b3 b2 b1。上位ビット b8〜b5 を列方向(列1〜4)で与え,下位ビット b4〜b1 を行方向(行1〜3)で与える。 列見出し(b8 b7 b6 b5 の各値。上から b8,b7,b6,b5 の矢印):
ビット列1列2列3列4
b80000
b70001
b60110
b51010
(表では上記の行の並びは 0000/0001/0110/1010 と読める配置) 行見出し(b4 b3 b2 b1): 行1=0001,行2=0010,行3=0011。 表の内容: 列3(行1〜3)= 1,2,3(文字“1”“2”“3”)。列4(行1〜3)= A,B,C。列1,列2 は空欄。

ア 00010100 00100011
イ 00110010 01000001
ウ 01000001 00110010
エ 01000010 00110010

出典:基本情報技術者試験 科目A免除 修了試験 20110626 実施分 問80

解き方と答えを見る
  1. 「A」を表の中で探すと、列4・行1にある。
  2. 列4の上位ビット b8 b7 b6 b5 を上から読むと 0, 1, 0, 0 なので「0100」。
  3. 行1の下位ビット b4 b3 b2 b1 は「0001」。
  4. 上位と下位を並べると、A = 0100 0001(= 01000001)。
  5. 「2」は列3・行2にある。列3の上位ビットは 0, 0, 1, 1 なので「0011」、行2の下位ビットは「0010」。
  6. 上位と下位を並べると、2 = 0011 0010(= 00110010)。
  7. 問題の順序は「A」→「2」なので、01000001 00110010 と並べる。
  8. 選択肢と照らし合わせる。イは順序が逆、エは 01000010(=列4・行2の「B」)なので誤り。

答え:ウ(01000001 00110010)

要点(試験直前に読む)

  • ASCII は7ビットで英数字・記号・制御文字のみで、漢字はない。
  • 「1バイト目で漢字か判別」ならシフトJIS、「UNIX」なら EUC、「世界標準」なら Unicode、「全文字2バイト」なら UCS-2。
  • コード表は「列=上位4ビット」と「行=下位4ビット」をこの順に並べる。文字の順序も入れ替えない。
  • CSV はコンマ区切り・改行でレコード区切り・文字は引用符でくくることもある。
  • JAN・ITF・Code128 は1次元、QR は2次元で、3隅の位置検出パターンで向きを認識する。JAN にはチェックディジットがある。
  • 構成比は円・帯、推移は折れ線、内訳と合計の推移は折れ線層、業績傾向は Z、バランスはレーダ、相関は散布図。

ひっかけ

  • 文字コードの説明の入れ替え:Unicode の選択肢に「1バイト目で漢字か分かる」(シフトJIS の特徴)、シフトJIS の選択肢に「UNIX」(EUC の特徴)が書かれる。キーワードと名前が合っているかを確認する。
  • UCS-2 の問題では、シフトJIS(JIS から派生)・EUC(UNIX)・ASCII(全部1バイト)の説明がダミーとして並ぶ。「全部2バイト・多言語対応」だけが正解。
  • コード表の問題では、文字の順序を逆にした選択肢や、隣の文字(A の代わりに B)を使った選択肢が出る。最後に順序と位置をもう一度確かめる。
  • バーコードでは「ITF は2次元」「バーコードは数字のみ」「PLU は価格を含む」がよくある誤り。2次元は QR、Code128 は英字も表せる、PLU は価格をシステム側に持つ。
  • グラフでは用途を入れ替えてくる(円グラフで進捗、散布図で占有率など)。「何を見せたいか」から逆に引いて判断する。

用語(20)

ASCII American Standard Code for Information Interchange
英数字・記号・制御文字を7ビットで表す米国生まれの文字コードで、漢字の規定はない。
⚠ Unicode と混同しやすい。「漢字なし・7ビット」なら ASCII、「世界の文字を統一」なら Unicode。
制御文字 せいぎょもじ
改行やタブのように、画面には表示されずに機器への命令として働く文字。
シフトJIS シフトジス
パソコンで普及した日本語の文字コードで、英数字は1バイト、漢字は2バイトで表し、1バイト目を見れば漢字かどうか分かる。
⚠ EUC と混同しやすい。「UNIX」とあれば EUC、「1バイト目で判別」とあればシフトJIS。
EUC Extended Unix Code
主に UNIX で使われる文字コードで、英数字は1バイト、漢字は2バイトで表す。
⚠ シフトJIS も英数字1・漢字2バイトで同じなので、「UNIX」の語で見分ける。
Unicode ユニコード
世界中の文字に1つの体系で番号を振る国際標準の文字コード。
⚠ 「1バイト目で漢字か分かる」はシフトJIS の説明で、Unicode ではない。
UCS-2 Universal Coded Character Set-2
Unicode の初期の符号化方式で、すべての文字を2バイトの固定長で表す。
⚠ UTF-8 は1〜4バイトの可変長。「すべて2バイト」なら UCS-2。
UTF-8 ユーティーエフエイト
Unicode を1〜4バイトの可変長で表す方式で、英数字は ASCII と同じ1バイトになる。
⚠ UCS-2(全部2バイト)との違いは、長さが固定か可変か。
CSV Comma-Separated Values
データをコンマで、レコードを改行で区切るテキスト形式で、文字データは引用符でくくることもある。
⚠ TSV はタブ区切り。「タグ」とあれば HTML/XML。計算式や書式は CSV に入らない。
JANコード Japanese Article Number
日本の共通商品コードを表す1次元バーコードで、末尾にチェックディジットを含む。
⚠ ITF も1次元だが物流(段ボール)用。
ITFコード Interleaved Two of Five
段ボール箱など物流で使う14桁の1次元バーコード。
⚠ 「2次元コードの代表例」ではない。2次元は QR コード。
Code128 コードイチニーハチ
英字や記号も含む ASCII の128文字を表せる1次元バーコード。
⚠ 「バーコードは数字しか表せない」という選択肢は、Code128 があるので誤り。
QRコード Quick Response コード
縦・横の両方に情報を持つ2次元コードで、1次元バーコードより多くのデータを記録できる。
⚠ JAN・ITF・Code128 はすべて1次元。容量は「128文字」程度ではなく数千文字。
位置検出パターン いちけんしゅつパターン
QR コードの3隅にある四角い目印で、これを使って回転角度と読取り方向を認識する。
チェックディジット check digit
ほかの桁から計算して付け足す検査用の数字で、読取りや入力の誤りを見つけるために使う。
PLU Price Look Up
バーコードには商品コードだけを入れ、価格は POS システムの登録データから引く方式。
⚠ 「バーコードの中に価格を含む」は誤り。
帯グラフ おびグラフ
長方形を構成比で区切って割合を示すグラフで、複数の年などを並べて比較しやすい。
⚠ 円グラフも構成比用。どちらも推移や進捗を表すものではない。
Zグラフ ゼットグラフ
月次の値・累計・移動合計を1つの図に描き、一定期間の売上実績や業績の傾向を示すグラフ。
⚠ 構成比を表すものではない。構成比なら帯グラフ・円グラフ。
折れ線層グラフ おれせんそうグラフ
内訳ごとの値を積み重ねた折れ線で描き、内訳と合計の推移を同時に示すグラフ。
⚠ ただの折れ線グラフは合計を見せにくい。二重円グラフは推移を表せない。
レーダチャート radar chart
複数の評価項目を放射状の軸にとり、全体のバランスを示すグラフ。
⚠ 複数項目の優劣比較はレーダチャートで、折れ線グラフではない。
散布図 さんぷず
2つの量を縦軸と横軸にとって点を打ち、相関関係を見るグラフ。
⚠ 市場占有率(構成比)を表すものではない。

このレッスンの過去問

このレッスンで稽古する