rabbit-slide-myokoym-mojicode 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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: []
|