プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESSプラスシリーズ)
- 技術評論社 (2010年2月18日発売)
- Amazon.co.jp ・本 (400ページ)
- / ISBN・EAN: 9784774141640
作品紹介・あらすじ
Unicode、JIS規格の今、文字コードの原則、文字化けのメカニズム、コード変換の基礎…ソフトウェア技術者をおもな対象として、文字コードの基礎知識を筋道立てて説明した技術解説書。
感想・レビュー・書評
-
文字集合と符号化方式の違いすら意識していなかった自分でも、本書を読むことで一から文字コードの基本と、それにまつわる問題を理解することができた。
とっても丁寧に細かいところまで解説してくれているし、完璧とまではいかないにしろ、これさえ読めばエンジニアが通常理解しておくべき文字コードの知識は習得できると思う。買った目的を文句なしに達成できた本。
それにしても、今まで文字コードをないがしろにしていた自分が恥ずかしい。理解できた今となってはかなり違った景色が見える。詳細をみるコメント0件をすべて表示 -
体系的に書かれていそうだったので、買ってみた。
-
改訂版がでている本ですが。
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
省略 -
よく書けている。フォント、文字コードを扱うなら必須かと。欧米人が書いた文字コードに関する書籍はいまいちなものが多い(特に、今後の展望についての予測が甘い場合が多い)ので、多バイト文字圏の人が書いたものの方が質が良いです。
-
ざっくりといいおさらいになった。JIS X2013のあたりは知らないコトも多くって勉強にもなりました。
会社ではなぜか文字コードについて聞かれることが多いんだけど、皆がこの本くらいのを前提として読むといいんじゃないかなぁ。 -
2010/6/6 電脳会議を見て 6/27 予約。 11/23 やっと順番が回って読み始める。
図書館の本がすごく汚いので、購入しようかと思ったが、必要な部分は少ないので、そこだけ拾い読み。
12/10 返却
文字コードについて 詳しくまとめられていい本です。
内容と著者は
内容 :
・ 文字コードの基本的な概念、および現在日本で使われているものを中心とした各種の文字コードを紹介。
また、コード変換や判別、インターネットやプログラミング言語での扱い、典型的なトラブルとその対処法も解説する。
・ ソフトウエア開発者向けに書かれた「文字コード」の解説書である。
「符号化文字集合」や「文字符号化方式」という基本的なことから、
「文字コードの変換と判別」「インターネットと文字コード」「プログラミング言語と文字コード」といった応用まで、幅広く取り上げている。
第8章「はまりやすい落とし穴とその対処」では、「文字化け」「全角・半角で何が問題になるのか」「円記号問題とは何か」などを解説している。
著者 : → URLはこちら http://yanok.net/ 『yanokの個人サイト』 :
北海道出身。工学修士(北海道大学)。
ITベンダに勤務し、企業向けソフトウェア技術の研究開発に従事する。
仮名漢字変換プログラムSKKのJIS第3・第4水準漢字辞書の開発にも取り組む。
(Twitter フォローした)
目次 :
■第1章 文字とコンピュータ
1.1 コンピュータで文字を扱う基本
1.2 文字を符号化するということ
1.3 文字集合と符号化文字集合
1.4 制御文字 ----文字ではない文字
1.5 文字コードはなぜ複雑になるのか
1.6 まとめ
■第2章 文字コードの変遷
2.1 最もシンプルな文字コード ----ASCII、ISO/IEC 646
2.2 文字コードの構造と拡張方法を定める ----ISO/IEC 2022
2.3 2バイト符号化文字集合の実用化 ----JIS X 0208、各種符号化方式
2.4 1バイト符号化文字集合の広がり ----ISO/IEC 8859、Latin-1
2.5 国際符号化文字集合の模索と成立 ----Unicode、ISO/IEC 10646
2.6 まとめ
■第3章 代表的な符号化文字集合
3.1 ASCIIとISO/IEC 646 ----最も基本的な1バイト文字集合
3.2 JIS X 0201 ----ラテン文字と片仮名の1バイト文字集合
3.3 JIS X 0208 ----日本の最も基本的な2バイト文字集合
3.4 JIS X 0212 ----補助漢字
3.5 JIS X 0213 ----漢字第3・第4水準への拡張
3.6 ISO/IEC 8859シリーズ ----欧米で広く使われる1バイト符号化文字集合
3.7 UnicodeとISO/IEC 10646 ----国際符号化文字集合
■第4章 代表的な文字符号化方式
4.1 JIS X 0201の符号化方式
4.2 JIS X 0208の符号化方式
4.3 Unicodeの符号化方式
■第5章 文字コードの変換と判別
5.1 コード変換とは
5.2 変換の実際 ----変換における考え方
5.3 文字コードの自動判別
5.4 まとめ
■第6章 インターネットと文字コード
6.1 電子メールと文字コード
6.2 Webと文字コード
6.3 まとめ
■第7章 プログラミング言語と文字コード
7.1 Java ----内部処理をUnicodeで行う
7.2 Ruby 1.8 ----シンプルな日本語化
7.3 Ruby 1.9 ----CSI方式で多様な文字コードを処理
7.4 まとめ
■第8章 はまりやすい落とし穴とその対処
8.1 トラブル調査の必須工具 ----16進ダンプツール
8.2 文字化け
8.3 改行コード
8.4 「全角・半角」問題
8.5 円記号問題
8.6 波ダッシュ問題
8.7 まとめ
■Appendix
A.1 ISO/IEC 2022のもう少しだけ詳しい説明
A.2 JIS X 0213の符号化方式
A.3 諸外国・地域の文字コード概説
A.4 Unicodeの諸問題
A.5 EmacsとSKKによるJIS2004の活用 ----本書執筆の舞台裏
A.6 規格の入手・閲覧方法ならびに参考文献 -
文字の扱いと、その諸問題について。入門としてかなり良い本。
-
実は文字コードって、あまり理解していないので読んでみました。
かなりの大作で読み切るのに時間がかかってしまった。
内容は良くまとまっているし、基本的にわかり易かったですよ。
前半はもっと図があればさらに良かったのと、この人はホントに日本人かと疑問に思う日本語が数箇所あり、若干気になった。
3章、4章の各種文字コードの構造や特徴と、8章の改行コード、「全角・半角」問題、円記号問題、波ダッシュ問題の箇所がとてもためになる。
ちなみに北朝鮮の文字コードであるKPS 9566では「金日成」「金正日」に相当するハングル6文字が文字コードの先頭に配置されていて、人名をソートした際に「金日成」「金正日」が必ず最初に現れるようです。面白いですね。 -
nkf iconvなどの文字コード関連ツールの存在が再認識。
ascci 7ビットの1バイト -
請求記号 007.63/Y 58