rabbit-slide-myokoym-mojicode 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.rabbit +1 -0
- data/README.rd +26 -0
- data/Rakefile +10 -0
- data/config.yaml +19 -0
- data/lavie.png +0 -0
- data/mojicode.rab +303 -0
- data/pdf/mojicode-mojicode.pdf +0 -0
- data/summary.jpg +0 -0
- metadata +70 -0
data/.rabbit
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
mojicode.rab
|
data/README.rd
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
= 文字コード略歴
|
2
|
+
|
3
|
+
日本の文字コードの歴史を簡単にまとめました。
|
4
|
+
|
5
|
+
いろいろな艱難辛苦があったようです。そして、これからも続く物語。
|
6
|
+
|
7
|
+
== 作者向け
|
8
|
+
|
9
|
+
=== 表示
|
10
|
+
|
11
|
+
rake
|
12
|
+
|
13
|
+
=== 公開
|
14
|
+
|
15
|
+
rake publish
|
16
|
+
|
17
|
+
== 閲覧者向け
|
18
|
+
|
19
|
+
=== インストール
|
20
|
+
|
21
|
+
gem install rabbit-slide-myokoym-mojicode
|
22
|
+
|
23
|
+
=== 表示
|
24
|
+
|
25
|
+
rabbit rabbit-slide-myokoym-mojicode.gem
|
26
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
require "rabbit/task/slide"
|
2
|
+
|
3
|
+
# Edit ./config.yaml to customize meta data
|
4
|
+
|
5
|
+
Rabbit::Task::Slide.new do |task|
|
6
|
+
# task.spec.licenses = ["CC BY-SA 3.0"]
|
7
|
+
# task.spec.files += Dir.glob("doc/**/*.*")
|
8
|
+
# task.spec.files -= Dir.glob("private/**/*.*")
|
9
|
+
# task.spec.add_runtime_dependency("YOUR THEME")
|
10
|
+
end
|
data/config.yaml
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
---
|
2
|
+
id: mojicode
|
3
|
+
base_name: mojicode
|
4
|
+
tags:
|
5
|
+
- rabbit
|
6
|
+
- character code
|
7
|
+
presentation_date:
|
8
|
+
version: 2.0.0
|
9
|
+
licenses:
|
10
|
+
- CC BY-SA 3.0
|
11
|
+
slideshare_id: 14295586
|
12
|
+
speaker_deck_id:
|
13
|
+
author:
|
14
|
+
markup_language: :rd
|
15
|
+
name: myokoym
|
16
|
+
email: myokoym@gmail.com
|
17
|
+
rubygems_user: myokoym
|
18
|
+
slideshare_user: myokoym
|
19
|
+
speaker_deck_user: myokoym
|
data/lavie.png
ADDED
Binary file
|
data/mojicode.rab
ADDED
@@ -0,0 +1,303 @@
|
|
1
|
+
= 文字コード略歴
|
2
|
+
|
3
|
+
: author
|
4
|
+
よこやままさふみ
|
5
|
+
: content-source
|
6
|
+
社内勉強会
|
7
|
+
: date
|
8
|
+
2012/05/18
|
9
|
+
: theme
|
10
|
+
lightning-clear-blue
|
11
|
+
: allotted-time
|
12
|
+
30m
|
13
|
+
|
14
|
+
= 自己紹介
|
15
|
+
|
16
|
+
* 横山昌史
|
17
|
+
* 入社4年目
|
18
|
+
* プログラマ etc...
|
19
|
+
* 所属プロジェクト
|
20
|
+
* Java、UNIX、雑用 etc...
|
21
|
+
* 文字コードの "るつぼ"
|
22
|
+
|
23
|
+
= Rabbitについて
|
24
|
+
|
25
|
+
* プレゼンテーションツール
|
26
|
+
* 実装: Ruby/GTK
|
27
|
+
* 動作: UNIX/Win/Mac
|
28
|
+
* 文章とデザインの分離
|
29
|
+
* バージョン管理しやすい
|
30
|
+
|
31
|
+
== プロパティ
|
32
|
+
|
33
|
+
: background-image
|
34
|
+
lavie.png
|
35
|
+
|
36
|
+
: background-image-relative-width
|
37
|
+
50
|
38
|
+
|
39
|
+
= 文字コードとは
|
40
|
+
|
41
|
+
* 文字をコンピュータで扱うための符号化方式
|
42
|
+
* エンコード、キャラクターセットとも呼ばれる
|
43
|
+
|
44
|
+
= 符号化
|
45
|
+
|
46
|
+
* 文字や音声などを0と1のデジタルデータに変換すること
|
47
|
+
* 16進数で記述されることが多い
|
48
|
+
* Javaなどでは、頭に"0x"を付けると16進数として扱われる
|
49
|
+
|
50
|
+
= よく使われる文字コード
|
51
|
+
|
52
|
+
* ASCII
|
53
|
+
* Shift_JIS
|
54
|
+
* UTF-8(Unicode)
|
55
|
+
* EBCDIC
|
56
|
+
|
57
|
+
= ASCII
|
58
|
+
|
59
|
+
= ASCII
|
60
|
+
|
61
|
+
* 英語を表現するための文字コード
|
62
|
+
* 英字アルファベット、記号
|
63
|
+
* いわゆる半角文字
|
64
|
+
|
65
|
+
= ASCII
|
66
|
+
|
67
|
+
* 1文字につき7ビットの1バイトコード
|
68
|
+
* 7ビット = 2(('sup:7')) = 128
|
69
|
+
* 16進数で言うと0x00〜0x7Fまで
|
70
|
+
* 1バイト = 8ビットのため、1ビット余り
|
71
|
+
|
72
|
+
= ASCIIの例
|
73
|
+
|
74
|
+
* Heisei 24
|
75
|
+
* 48 65 69 73 65 69 20 32 34
|
76
|
+
* 16進数(0xは省略)
|
77
|
+
|
78
|
+
= JIS X 0201
|
79
|
+
|
80
|
+
* 日本工業規格
|
81
|
+
* 一部の符号位置がASCIIと違う
|
82
|
+
* 半角カナが使える
|
83
|
+
* 8ビット目を拡張
|
84
|
+
|
85
|
+
= ASCIIと異なる文字
|
86
|
+
|
87
|
+
* 符号位置0x5C
|
88
|
+
* ASCII:半角バックスラッシュ
|
89
|
+
* JISX0201:半角円記号
|
90
|
+
|
91
|
+
= ASCIIと異なる文字
|
92
|
+
|
93
|
+
* 符号位置0x7E
|
94
|
+
* ASCII:半角チルダ
|
95
|
+
* JISX0201:半角オーバーライン
|
96
|
+
|
97
|
+
= ASCIIと異なる文字
|
98
|
+
|
99
|
+
* ASCIIかJISX0201かは曖昧
|
100
|
+
* 環境によって表示が変わる
|
101
|
+
* 日本のフォントは円記号
|
102
|
+
* 外国のフォントはバックスラッシュ
|
103
|
+
* 7Eは日本でも大抵チルダ
|
104
|
+
|
105
|
+
= Shift_JIS
|
106
|
+
|
107
|
+
= ASCIIの欠点
|
108
|
+
|
109
|
+
* 日本語(ひらがな、カタカナ、漢字)が扱えない
|
110
|
+
|
111
|
+
= 漢字の文字数
|
112
|
+
|
113
|
+
* 常用漢字 2,136文字(2010年改定)
|
114
|
+
* 1バイト = 8ビット = 2(('sup:8')) = 256
|
115
|
+
* 1バイトでは表現できない
|
116
|
+
|
117
|
+
= 2バイトコード
|
118
|
+
|
119
|
+
* 1文字を2バイトで符号化
|
120
|
+
* 2バイト = 16ビット = 2(('sup:16')) = 65,536
|
121
|
+
|
122
|
+
= JIS X 0208
|
123
|
+
|
124
|
+
* 日本工業規格
|
125
|
+
* JIS第1・第2水準漢字を定義
|
126
|
+
* 最新版では6,879文字を収録
|
127
|
+
* 1983年に大幅な変更
|
128
|
+
* 異字体の符号位置入れ替え
|
129
|
+
* 字形の変更
|
130
|
+
|
131
|
+
= JIS X 0213
|
132
|
+
|
133
|
+
* 日本工業規格
|
134
|
+
* JIS X 0208の拡張(後方互換)
|
135
|
+
* JIS第3・第4水準漢字を定義
|
136
|
+
* 環境によってはJISX0213に対応していない(JIS第3・第4水準漢字が使えない)
|
137
|
+
|
138
|
+
= Shift_JISの成り立ち
|
139
|
+
|
140
|
+
(('tag:center'))
|
141
|
+
JIS X 0201\n
|
142
|
+
+\n
|
143
|
+
JIS X 0208(JIS X 0213)\n
|
144
|
+
|
145
|
+
= Shift_JISの特徴
|
146
|
+
|
147
|
+
* 日本語が表現できる
|
148
|
+
* 半角カナが使える
|
149
|
+
* JISX0201との互換性
|
150
|
+
|
151
|
+
= Shift_JISの例
|
152
|
+
|
153
|
+
* 平成 24
|
154
|
+
* 95 BD 90 AC 20 32 34
|
155
|
+
|
156
|
+
= Shift_JISの欠点
|
157
|
+
|
158
|
+
* 全角半角問題
|
159
|
+
* 「A」と「A」、「ア」と「ア」など
|
160
|
+
* 全角文字を扱える文字コード共通の問題
|
161
|
+
* JISX0201の副作用
|
162
|
+
* だめ文字
|
163
|
+
|
164
|
+
= Shift_JISの派生
|
165
|
+
|
166
|
+
* WindowsではShift_JISを拡張した文字コードが使われている
|
167
|
+
* Windows31-JやMS932やCP932などと呼ばれる
|
168
|
+
* 重複符号化(㈱問題)
|
169
|
+
* 同じ文字に複数の符号位置
|
170
|
+
|
171
|
+
= UTF-8
|
172
|
+
|
173
|
+
= Shift_JISの欠点
|
174
|
+
|
175
|
+
* 日本語しか扱えない
|
176
|
+
|
177
|
+
= Unicode
|
178
|
+
|
179
|
+
* 世界中の言語を表現できる文字コードの仕様がUnicode
|
180
|
+
* 110,181文字(2012年1月)
|
181
|
+
|
182
|
+
= Unicode
|
183
|
+
|
184
|
+
* Unicodeの実装の一つがUTF-8
|
185
|
+
* 他にもUTF-16など
|
186
|
+
|
187
|
+
= UTF-8の特徴
|
188
|
+
|
189
|
+
* ASCIIを拡張
|
190
|
+
* Shift_JISとは違い、JISX0201の拡張ではない
|
191
|
+
* 半角カナなどの符号位置がShift_JISと違う
|
192
|
+
* だめ文字がない
|
193
|
+
|
194
|
+
= 1文字のバイト数
|
195
|
+
|
196
|
+
* ASCII
|
197
|
+
* 全て半角文字 = 全て1バイト
|
198
|
+
* Shift_JIS
|
199
|
+
* 半角 = 1バイト
|
200
|
+
* 全角 = 2バイト
|
201
|
+
|
202
|
+
= 1文字のバイト数
|
203
|
+
|
204
|
+
* UTF-8
|
205
|
+
* 半角 = 主に1バイト
|
206
|
+
* 全角 = 日本語は3バイト
|
207
|
+
* 記号は3バイトか2バイト
|
208
|
+
|
209
|
+
= UTF-8の例
|
210
|
+
|
211
|
+
* 平成 24
|
212
|
+
* E5 89 B3 E6 88 90 20 32 34
|
213
|
+
|
214
|
+
= 1バイトでない半角文字
|
215
|
+
|
216
|
+
* \(半角)が2種類
|
217
|
+
* 5C (ASCII): 規格上はバックスラッシュ
|
218
|
+
* C2 A5 (UTF-8): 規格上は円記号
|
219
|
+
* 2バイトの半角文字
|
220
|
+
|
221
|
+
= 1バイトでない半角文字
|
222
|
+
|
223
|
+
* ~(半角)も2種類
|
224
|
+
* 7E (ASCII): 規格上はチルダ
|
225
|
+
* E2 80 BE (UTF-8): 規格上はオーバーライン
|
226
|
+
* 3バイトの半角文字
|
227
|
+
|
228
|
+
= 半角カナ
|
229
|
+
|
230
|
+
* ア (半角)
|
231
|
+
* B1 (Shift_JIS)
|
232
|
+
* EF BD B1 (UTF-8)
|
233
|
+
* UTF-8の半角カナは全て3バイト
|
234
|
+
* 単純なバイト数チェックでは、半角か全角か判別できない
|
235
|
+
|
236
|
+
= IBM版とMS版
|
237
|
+
|
238
|
+
* IBM-Unicode(一般的なUnicode)とMS-Unicode(マイクロソフト版Unicode)で符号位置が異なる文字がある
|
239
|
+
* いわゆる波ダッシュ問題の要因
|
240
|
+
|
241
|
+
= 波ダッシュ問題
|
242
|
+
|
243
|
+
* Windowsとそれ以外のOS間での通信時などに文字化け
|
244
|
+
* 対象文字は10文字程度(環境による)
|
245
|
+
* ~ ― - ‖ ∥ ¦ ¬ ¢ £
|
246
|
+
|
247
|
+
= EBCDIC
|
248
|
+
|
249
|
+
= EBCDIC
|
250
|
+
|
251
|
+
* IBMによって定義された文字コード
|
252
|
+
* IBM製のメインフレーム(汎用機)などで現在も使用されている
|
253
|
+
|
254
|
+
= EBCDIC
|
255
|
+
|
256
|
+
* 半角文字の符号位置がASCIIと異なる
|
257
|
+
* 全角文字の表現方法がShift_JISやUTF-8と異なる
|
258
|
+
* 基本的にJIS第3・第4水準は含まれない
|
259
|
+
|
260
|
+
= 半角文字
|
261
|
+
|
262
|
+
* すべて1バイト
|
263
|
+
* 8ビット目まで使用
|
264
|
+
* 制御文字エリアが大きい
|
265
|
+
* 0x00~0x3Fと0xFF
|
266
|
+
* 汎用機で使用される特殊な制御文字が含まれている
|
267
|
+
|
268
|
+
= 全角文字
|
269
|
+
|
270
|
+
* 半角文字との区別は制御文字で行う
|
271
|
+
* 全角の開始位置がシフトアウト(0x0E)
|
272
|
+
* 全角の終了位置がシフトイン(0x0F)
|
273
|
+
* 略してSO/SIなどと呼ばれる
|
274
|
+
|
275
|
+
= SO/SI
|
276
|
+
|
277
|
+
* 平成 24
|
278
|
+
* ((*0E*)) 45 8D 45 BA ((*0F*)) 40 F2 F4
|
279
|
+
|
280
|
+
= うわっ…
|
281
|
+
|
282
|
+
* SIの欠如
|
283
|
+
* ((*0E*)) 45 8D 45 BA
|
284
|
+
* SO/SIのネスト
|
285
|
+
* ((*0E*)) 45 8D ((*0E*)) 45 BA ((*0F*)) ((*0F*))
|
286
|
+
* SO/SIを対として扱うのではなく、モード切替文字として扱うことで対応
|
287
|
+
|
288
|
+
= まとめ
|
289
|
+
|
290
|
+
# image
|
291
|
+
# src = summary.jpg
|
292
|
+
# width = 640
|
293
|
+
# height = 420
|
294
|
+
|
295
|
+
= 参考
|
296
|
+
|
297
|
+
* プログラマのための文字コード技術入門
|
298
|
+
* 正規表現クックブック(66ページ)
|
299
|
+
* AIX 5L 日本語コード一覧表
|
300
|
+
* jp_codebookで検索
|
301
|
+
|
302
|
+
ご静聴ありがとうございました。
|
303
|
+
|
Binary file
|
data/summary.jpg
ADDED
Binary file
|
metadata
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rabbit-slide-myokoym-mojicode
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- myokoym
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-09-15 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rabbit
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 2.0.2
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.0.2
|
30
|
+
description: 日本の文字コードの歴史を簡単にまとめました。
|
31
|
+
email:
|
32
|
+
- myokoym@gmail.com
|
33
|
+
executables: []
|
34
|
+
extensions: []
|
35
|
+
extra_rdoc_files: []
|
36
|
+
files:
|
37
|
+
- .rabbit
|
38
|
+
- config.yaml
|
39
|
+
- Rakefile
|
40
|
+
- README.rd
|
41
|
+
- lavie.png
|
42
|
+
- summary.jpg
|
43
|
+
- mojicode.rab
|
44
|
+
- pdf/mojicode-mojicode.pdf
|
45
|
+
homepage: http://slide.rabbit-shocker.org/authors/myokoym/mojicode/
|
46
|
+
licenses:
|
47
|
+
- CC BY-SA 3.0
|
48
|
+
post_install_message:
|
49
|
+
rdoc_options: []
|
50
|
+
require_paths:
|
51
|
+
- lib
|
52
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ! '>='
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ! '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
requirements: []
|
65
|
+
rubyforge_project:
|
66
|
+
rubygems_version: 1.8.23
|
67
|
+
signing_key:
|
68
|
+
specification_version: 3
|
69
|
+
summary: 文字コード略歴
|
70
|
+
test_files: []
|