プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESSプラスシリーズ)
- 技術評論社 (2010年2月18日発売)
改訂版がでている本ですが。
1章 文字とコンピュータ
符号化とはいろんなことをコンピュータ内のbitで表現することを言う。
文字とビットの対応させるルールを文字コード。表現されるビットそのものを
文字コードと表現することもあるがどちらかというとそれはコード値
コンピュータに符合化する文字の集まりを文字集合という(符号化文字集合)
この符号化文字集合をbitに割り付けるルールを文字コード
最初の文字コードがASCII(ISO/IEC 646国際基準版)になる。
2章 文字コードの変遷
もっとも基本的な文字コードASCIIについての説明。
ASCIIはアメリカの文字コードに適したようにつくられているので
他の国には(イギリス、フランスなど)使いづらかったので
ASCIIをベースに各国用の文字コードが決められた。これが
ISO/IEC 646として規格化されたその日本版がJIS X 0201
ASCIIとJIS0201のちがい
\(バックスラッシュ)が円記号
~(チルダ)がオーバライン
文字コードの拡張方法(ISO/IEC 2022)により複数の国の文字が
まざった文書がかけるようになる。(エスケープシーケンスによる切替)
2バイト符号化文字集合の実用化がJIS X 0208=JIS第1.第2水準漢字。
ここで漢字のような2バイトでなければ表現できない文字集合と1バイトで
十分な文字集合を同時に使用できる符号化方式が開発され、今も使用されている。
Shift_JIS EUC-JP ISO2022-JPがそうである。
JIS X 0208 + JIS X 0201(ASCII) => Shift_JIS
世界中の文字を1つの文字集合、文字コードで表現するというのがUniCode
ISO/IEC 10646である。いろいろとあったようであるが現在ではUTF-8とUTF-16
で表現されている。UniCodeが完成したから既存の文字コードがなくならない
のはあたりまえのことであるが・・
3章 代表的な符号化文字集合
ASCIIとISO/IEC 646 基本的な文字コード
各国版(1BYTE文字)のASCII ISO/IEC 646
日本版のASCII JIS X 0201
JIS X 0208 今なお使われている日本語のための2バイト文字集合,文字コード
記号類、ギリシャ文字、キリル文字、ラテン文字、ひらがな、カタカナ、
漢字(第一水準、第二水準)までを含んでいる。現在に至るまでいろいろ
改正されているようである。
JIS X 0212 補助漢字と呼ばれJIS X 0208と組み合わせて使用されることが
前提となっている。2バイト符号化文字集合
JIS X 0213 JISX0212につづく漢字の拡張であるがJIS X 0208 + JIS X 0212
ではなくJIS X 2013 = JIS X 0208 + 0212 +さらなる拡張 であり
JIS X 2008を置き換えて使用する文字集合となる。JIS X 0213には第3水準
第4水準の漢字が追加されている
ISO/IEC 8859 1バイト符号化文字集合 Latin-1,Latin-2がある
UniCode ISO/IEC 10646 規格がでかいので省略
4章 代表的な文字符号化方式
JIS X0201の符号化方式(日本のASCII) 7bit符号と8bit符号がある
JIS X 0208符号化方式 Shift_JIS,ISO-2022-jp、EUC-JPを含む計8種るもの方式がある
このうちもっとも有名で事実上の標準がShift_JISである
UniCode UTF-16はjavaの文字列表現に使用されている。最も広く使われているのはASCIIとの
互換性があるUTF-8である
5章 文字コードの変換と判別
各文字コード間での変換が必要である。ツールとしてはiconvnkfなどがある。
文字コードを読み込んだ文書から判別する技術が自動判別である。BOMで判別する
方法エスケープシーケンスによる判別などある。
6章 インターネットと文字コード
電子メールの世界では7bitしか使えない制約があり、多言語やプレーンテキスト以外の
バイナリデータもおくれるようにする技術がMIMEである。
7bitしかとうせないので8bitのデータをとうすためbase64などの符号化技術が(文字の符号化とは違う)
適用されている
Webで使用される文字コード いろいろありそうなので省略
7章 プログラミング言語と文字コード
Java 内部コードを持っている言語、内部コードはUniCode。 同じよな方式を取っているのはC# Python,Perlなどがある
この方式を取っていない代表としてはRubu 1.9がある。
javaのソースコードはUniCodeでなくてもよい。このとき外部コードから内部コード(Unicode)に変換されている。
Ruby1.9は文字列ごとに文字コードの種類に関する情報を持つようになった。
8章 はまりやすい落とし穴とその対処
文字化け
Shift_JISをEUC_JPとして表示するなど、文字コードが違うことに起因する文字化け
機種依存文字に起因する文字化け
改行コードに起因する文字化け
全角、半角問題
円記号問題
波ダッシュ問題・チルダ問題
Appendix
省略
- 感想投稿日 : 2020年1月3日
- 読了日 : 2020年1月3日
- 本棚登録日 : 2020年1月2日
みんなの感想をみる