応用情報技術者試験 - SE娘の剣 -

応用情報処理技術者試験の対策サイトです。 応用情報処理技術者試験の午前問題を中心とした基礎用語の解説を中心に掲載します。書き始めたばかりなので、内容はまだまだ不十分です。少しずつ追記していきます

文字コード

1.文字コードとは

コンピュータは漢字やひらがなをそのまま理解することはできません。そこで、漢字やひらがななどの文字を、01データで表す変換が必要になります。この対応のことを文字コードと言います。
文字コードにはいくつかの種類がありますが、たとえば、JISコードの変換表(一部)をみてみましょう。

f:id:mamori_yuto:20181101134016j:plain

■JISコード表(抜粋)

たとえば、ひらがなの「あ」のJISコードは、上記の表から「2224」、「い」であれば「2424」です。
ひらがなカタカナ以外にも、アルファベット、数字、記号なども対応が決められています。

2.さまざまな文字コード

文字コードは1種類ではありません。応用情報技術者試験シラバスでは、文字コードに関して以下の記載があります。

(3)文字の表現
代表的な文字コードを理解する。
用語例 ASCII コード,EUCExtended UNIX Code:拡張UNIX コード),JIS コード,シフトJIS コード,Unicode,UCS

このように、いくつかの種類があります。また、先ほどの「あ」ですが、JISコードでは「2422」でしたが、シフトJISでは「82A0」、EUC-JPでは「A4A2」と、文字コードが違えば、全く違うコードになります。

f:id:mamori_yuto:20181027120215j:plain
なるほど!
それで、文字コードが違うと、全く違う文字になって文字化けするのですね。

そうです。では、具体的な文字コードを見ていきましょう。
平成18年 午前 問55を参考にすると、以下のようになります。
①ASCII(American Standard Code for Information Interchange)
ANSIアメリカの規格団体。日本でいうJIS)
全ての文字を1バイトで表現する。
1バイトなので、漢字は表現できない。
※実際にはわずか7ビット(=128文字)

EUC(Extended Unix Code)
UNIXを中心に普及している複数バイトからなるコードで、漢字も表現できるもの(平成16年 問50)
・英数字は1バイト、漢字は2バイト(H17共通39)

Unicode または UCS
・万国共通の文字コード
・すべての文字を2バイトで表現するコード体系であり、多くの国の文字体系に対応できる。(H17共通39)
UCS-2 (Universal multi-octet coded Character Set)とUCSは厳密には別物であるが、UnicodeはUCSの一部であり、同じと考えてよいだろう。
過去問では、「すべの文字を2バイトで表現するコード体系であり、多くの国の文字体系に対応できる(H20AN午前40)」と述べられており、Unicodeと同じ表現になっている。

シフトJIS
1バイト目がASCIIコードと重複しないようにSHIFT(ずらす)

 

3.文字コードに関する過去問

問4 UTF-8の説明に関する記述として,適切なものはどれか。
ア 1文字を1バイトから4バイト(又は6バイト)までの可変長で表現しており,ASCIIと上位互換性がある。
イ 2バイトで表現する領域に収まらない文字は,上位サロゲートと下位サロゲートを組み合わせて4バイトで表現する。
ウ ASCII文字だけを使用することが前提の電子メールで利用するために,7ビットで表現する。
エ 各符号位置が4バイトの固定長で表現される符号化形式である。



【正解】ア