投稿元:
レビューを見る
非常に詳しく書いてある
1章 バイナリーとテキスト
省略
2章 文字コードの入出力
Perlで実装してあるがPerlを知らないのでPythonで実装
エデイタをShift JISにしてコマンドラインで実行すると
エラーがでた。
File ".\sjis_hello.py", line 1
SyntaxError: Non-UTF-8 code starting with '\x82' in file .\sjis_hello.py on line 1,
but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
PythonはUTF-8の予定だったのが違うものがきた。といってるらしいので1行目に
# coding: shift_jisをついかすると無事実行できた。
EUC-jpであいさつも同じようにエラーがでたので# coding: EUC-JPを追加したら実行できた
文字列を文字コードに変換するstr2hex.py
import sys
args = sys.argv
larg = ''.join([hex(ord(s))[2:] for s in args[1]])
print(larg)
>>結果
>python .\str2hex.py abcdef
616263646566
文字コードを文字列に変換するhex2str.py
import sys
args = sys.argv
args = args[1]
print(''.join([chr(int(args[i*2:i*2+2],16)) for i in range(int(len(args)/2))]))
> python .\hex2str.py 6162636465
abcde
3章 バイナリファイルのいろいろ
省略
4章 コンピューターと文字
省略
5章 2進数、16進数の計算
省略
6章 規格と機関
ISO,JIS,ANSI,RFC,Unicodeコンソーシアムについての説明
ISOが非政府機関とは始めて知った。しかも設立が1947年と古い
JISが1949年なので、歴史ある機関である。
7章 文字コード系の歴史総まくり
ASCII 最初はテレタイプも文字コードとして規格された。
ISO 646 ASCIIの国際化
JIS X 0201 ISO646に日本版
EBCDIC ASCIIではない1バイト系文字コード、IBMの汎用機に使用されていた
ISO 2022 複数のコード系を切り換える仕組み。1byteも複数byteも扱える。
ISO 8859-1 ISO 2022に準拠したヨーロッパ文字コード
JIS X 0208 ISO 2022に準拠したJIS第一、第二水準の漢字を含んでいる
JIS X 0212 補助漢字コード JIS X 0208を補完するもの
JIS X 0213 JIS第三、第四水準の漢字まで含んでおりJIS X 0208を置き換えるもの
EUC-JP UNIX用文字コード
ISO 2022-JP 半角カナがないという特徴がある
Shift_JIS 日本独自の文字コード、Windowsの文字コード(CP932)として採用されている
ISO10646/Unicode 世界中すべての文字を単一の文字コードとして表現するために考案されたもの
8章 ASCII
コラムの記号文字の呼び方がとても関心した。
9章 JIS X 0201
ISO 646の日本版がJIS X 0201で7bit版と8bit版がある。半角カナが入っている。
7bitではカタカナの表現には小さすぎるので7bitも文字集合を2つ用意しSHIFT OUT/SHIFT IN
で文字集合を切り換えながら使用するので文字コード値そのものは7bitのままとなる。
8bit版は8bitで文字集合を1つ用意しASCIIとカタカナを表現する。文字コード値は8bitとなる。
7/8bit長所、短所あり1つには決められない。
10章 ISO 2022
ISO 2022は文字コードを定義している規格ではなく複数の文字コードを切り換える方法を定義してある
JIS X0201はSHIFT OUT/SHIFT INで2つの文字集合を切り換えて使用していたが2022でがさらに
ESCシーケンスを利用して1Byte系文字コード、2Byte系文字コードを切り換えることも可能
11章 ISO 8859-1
西ヨーロッパ言語用文字コード。ISO 8859シリーズの文字コードであり8859-1~8859-16まである
8859-12は
12章 JIS X 0208
ISO 2022に準拠した複数バイトの文字コード、第一水準、第二水準の文字コード
13章 JIS X 02012
JIS X 0208と使用する文字コード。補助漢字と呼ばれる
14章 JIS X 0213
JIS X 0213はJIS X 0208のスーパーセットで0208を置き換える目的で規格された。
第三水準、第四水準の漢字が使用可能である
15章 ISO-2022-JP
省略
16章 EUC-JP
省略
17章 Shift_JIS
最も有名な文字コードであるがいろいろ問題があるらしい
18章 機種依存文字
基本的な文字コードにメーカーが拡張した文字コードをベンダーコードという。
WindowsのCP932はSHIFT_JISにIBMとNECのベンダーコードを載せたもの
ほかにCP437,CP1252が紹介されている
19章 Unicode
Unicode/ISO 10646は単一コードを目指した世界共通の文字コード。全部を理解するのは
ちょっと無理がありそう。
20章 文字セットにはない文字を表現する方法
外字をつかう
画像をつかう
21章 インターネットと文字コード
FTP,電子メール、XML,JavaScriptなど