文字コード・コード化とデータの見せ方
ASCII・シフトJIS・EUC・Unicode(UCS-2)の特徴を見分け、コード表から文字を2進数に直せるようになる。あわせて CSV の形式、JAN・ITF・QR コードの違い、目的に合うグラフの種類を選べるようになる。
文字コードの取り違えは、実務でもよくある「文字化け」やCSV取り込み失敗の原因です。試験では「どのコードの説明か」「どのグラフが適切か」を、選択肢どうしで説明を入れ替えて問う形が定番です。
このレッスンで稽古する(用語チェック・過去問)文字コードとは:文字に振った「出席番号」
文字コードとは、文字ごとに番号(2進数)を割り当てた対応表のことです。コンピュータは数字しか扱えないので、「A は 65 番」のように決めておきます。クラスの出席番号と同じで、名簿(=文字コード)が違えば同じ番号でも別人になります。これが文字化けの正体です。
1バイト(8ビット)で表せるのは最大 256 種類です。英数字なら足りますが、漢字は数千字あるので 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 が付きます。
CSV形式
CSV(Comma-Separated Values)は、データをコンマ(,)で区切り、レコード(1件分のデータ)を改行で区切るテキスト形式です。文字データは「"」(引用符)でくくることもあります。計算式・書式・画像は記録できません。
| 形式 | 区切り |
|---|---|
| CSV | コンマ |
| TSV | タブ |
| HTML / XML | タグ |
「タブ区切り」「タグを挿入」「書式も記録」と書いてある選択肢は 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)に問い合わせる方式です。「バーコードの中に価格を含む」と書いてあれば誤りです。
グラフは「何を見せたいか」で選ぶ
グラフ問題は「目的」と「グラフ」の組合せを入れ替えて出題されます。下の表を目的から引けるようにしておきましょう。
| 見せたいもの | グラフ |
|---|---|
| 構成比(全体に占める割合) | 円グラフ・帯グラフ(帯は複数年の比較にも向く) |
| 構成比と、その内訳 | 二重円グラフ |
| 時間の推移 | 折れ線グラフ |
| 内訳ごとの推移と合計の推移を同時に | 折れ線層グラフ(積み重ねた折れ線) |
| 一定期間の売上実績・業績傾向 | Zグラフ(月次・累計・移動合計の3本の線がZ字形になる) |
| 複数項目のバランス | レーダチャート |
| 2つの量の相関 | 散布図 |
| 2つの軸で見た位置づけ | ポートフォリオ図 |
たとえば「メーカ別の市場構成比」なら帯グラフ(または円グラフ)、「障害の種類別件数と総件数の推移」なら折れ線層グラフです。
コード表から「A」「2」を2進数にする
| ビット | 列1 | 列2 | 列3 | 列4 |
|---|---|---|---|---|
| b8 | 0 | 0 | 0 | 0 |
| b7 | 0 | 0 | 0 | 1 |
| b6 | 0 | 1 | 1 | 0 |
| b5 | 1 | 0 | 1 | 0 |
ア 00010100 00100011
イ 00110010 01000001
ウ 01000001 00110010
エ 01000010 00110010
出典:基本情報技術者試験 科目A免除 修了試験 20110626 実施分 問80
解き方と答えを見る
- 「A」を表の中で探すと、列4・行1にある。
- 列4の上位ビット b8 b7 b6 b5 を上から読むと 0, 1, 0, 0 なので「0100」。
- 行1の下位ビット b4 b3 b2 b1 は「0001」。
- 上位と下位を並べると、A = 0100 0001(= 01000001)。
- 「2」は列3・行2にある。列3の上位ビットは 0, 0, 1, 1 なので「0011」、行2の下位ビットは「0010」。
- 上位と下位を並べると、2 = 0011 0010(= 00110010)。
- 問題の順序は「A」→「2」なので、01000001 00110010 と並べる。
- 選択肢と照らし合わせる。イは順序が逆、エは 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)
英数字・記号・制御文字を7ビットで表す米国生まれの文字コードで、漢字の規定はない。
⚠ Unicode と混同しやすい。「漢字なし・7ビット」なら ASCII、「世界の文字を統一」なら Unicode。
改行やタブのように、画面には表示されずに機器への命令として働く文字。
パソコンで普及した日本語の文字コードで、英数字は1バイト、漢字は2バイトで表し、1バイト目を見れば漢字かどうか分かる。
⚠ EUC と混同しやすい。「UNIX」とあれば EUC、「1バイト目で判別」とあればシフトJIS。
主に UNIX で使われる文字コードで、英数字は1バイト、漢字は2バイトで表す。
⚠ シフトJIS も英数字1・漢字2バイトで同じなので、「UNIX」の語で見分ける。
世界中の文字に1つの体系で番号を振る国際標準の文字コード。
⚠ 「1バイト目で漢字か分かる」はシフトJIS の説明で、Unicode ではない。
Unicode の初期の符号化方式で、すべての文字を2バイトの固定長で表す。
⚠ UTF-8 は1〜4バイトの可変長。「すべて2バイト」なら UCS-2。
Unicode を1〜4バイトの可変長で表す方式で、英数字は ASCII と同じ1バイトになる。
⚠ UCS-2(全部2バイト)との違いは、長さが固定か可変か。
データをコンマで、レコードを改行で区切るテキスト形式で、文字データは引用符でくくることもある。
⚠ TSV はタブ区切り。「タグ」とあれば HTML/XML。計算式や書式は CSV に入らない。
日本の共通商品コードを表す1次元バーコードで、末尾にチェックディジットを含む。
⚠ ITF も1次元だが物流(段ボール)用。
段ボール箱など物流で使う14桁の1次元バーコード。
⚠ 「2次元コードの代表例」ではない。2次元は QR コード。
英字や記号も含む ASCII の128文字を表せる1次元バーコード。
⚠ 「バーコードは数字しか表せない」という選択肢は、Code128 があるので誤り。
縦・横の両方に情報を持つ2次元コードで、1次元バーコードより多くのデータを記録できる。
⚠ JAN・ITF・Code128 はすべて1次元。容量は「128文字」程度ではなく数千文字。
QR コードの3隅にある四角い目印で、これを使って回転角度と読取り方向を認識する。
ほかの桁から計算して付け足す検査用の数字で、読取りや入力の誤りを見つけるために使う。
バーコードには商品コードだけを入れ、価格は POS システムの登録データから引く方式。
⚠ 「バーコードの中に価格を含む」は誤り。
長方形を構成比で区切って割合を示すグラフで、複数の年などを並べて比較しやすい。
⚠ 円グラフも構成比用。どちらも推移や進捗を表すものではない。
月次の値・累計・移動合計を1つの図に描き、一定期間の売上実績や業績の傾向を示すグラフ。
⚠ 構成比を表すものではない。構成比なら帯グラフ・円グラフ。
内訳ごとの値を積み重ねた折れ線で描き、内訳と合計の推移を同時に示すグラフ。
⚠ ただの折れ線グラフは合計を見せにくい。二重円グラフは推移を表せない。
複数の評価項目を放射状の軸にとり、全体のバランスを示すグラフ。
⚠ 複数項目の優劣比較はレーダチャートで、折れ線グラフではない。
2つの量を縦軸と横軸にとって点を打ち、相関関係を見るグラフ。
⚠ 市場占有率(構成比)を表すものではない。
このレッスンの過去問
- 文字コードの種類と特徴(ASCII・Unicode・シフトJIS等)基本情報技術者試験 科目A免除 修了試験 20131215 実施分 問80
- CSV形式の特徴基本情報技術者試験 科目A免除 修了試験 20120722 実施分 問80
- バーコードの種類(ITF・JAN)基本情報技術者試験 科目A免除 修了試験 20130728 実施分 問80
- QRコードの特徴(位置検出シンボル)基本情報技術者試験 科目A免除 修了試験 20120624 実施分 問79
- グラフの種類と用途(構成比は帯・円グラフ)平成21年度 春期 基本情報技術者試験 午前 問54