文字コード略歴

831 views

Published on

日本の文字コードの歴史を簡単にまとめました。

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
831
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

文字コード略歴

  1. 1. 文字コード略歴 よこやままさふみ 社内勉強会 2012/05/18文字コード略歴 Powered by Rabbit 2.0.6
  2. 2. 自己紹介 ✓ 横山昌史 ✓ 入社4年目 ✓ プログラマ etc... ✓ 所属プロジェクト ✓ Java、UNIX、雑用 etc... ✓ 文字コードの "るつぼ"文字コード略歴 Powered by Rabbit 2.0.6
  3. 3. Rabbitについて ✓ プレゼンテーションツール ✓ 実装: Ruby/GTK ✓ 動作: UNIX/Win/Mac ✓ 文章とデザインの分離 ✓ バージョン管理しやすい文字コード略歴 Powered by Rabbit 2.0.6
  4. 4. 文字コードとは ✓ 文字をコンピュータで扱うための 符号化方式 ✓ エンコード、キャラクターセットとも 呼ばれる文字コード略歴 Powered by Rabbit 2.0.6
  5. 5. 符号化 ✓ 文字や音声などを0と1のデジタ ルデータに変換すること ✓ 16進数で記述されることが多い ✓ Javaなどでは、頭に"0x"を付けると16 進数として扱われる文字コード略歴 Powered by Rabbit 2.0.6
  6. 6. よく使われる文字コード ✓ ASCII ✓ Shift_JIS ✓ UTF-8(Unicode) ✓ EBCDIC文字コード略歴 Powered by Rabbit 2.0.6
  7. 7. ASCII文字コード略歴 Powered by Rabbit 2.0.6
  8. 8. ASCII American Standard Code for Information Interchange文字コード略歴 Powered by Rabbit 2.0.6
  9. 9. ASCII ✓ 英語を表現するための文字コード ✓ 英字アルファベット、記号 ✓ いわゆる半角文字文字コード略歴 Powered by Rabbit 2.0.6
  10. 10. ASCII ✓ 1文字につき7ビットの1バイトコ ード 7 ✓ 7ビット = 2 = 128 ✓ 16進数で言うと0x00〜0x7Fまで ✓ 1バイト = 8ビットのため、1ビット余り文字コード略歴 Powered by Rabbit 2.0.6
  11. 11. ASCIIの例 ✓ Heisei 24 ✓ 48 65 69 73 65 69 20 32 34 ✓ 16進数(0xは省略)文字コード略歴 Powered by Rabbit 2.0.6
  12. 12. JIS X 0201 ✓ 日本工業規格 ✓ 一部の符号位置がASCIIと違う ✓ 半角カナが使える ✓ 8ビット目を拡張文字コード略歴 Powered by Rabbit 2.0.6
  13. 13. ASCIIと異なる文字 ✓ 符号位置0x5C ✓ ASCII:半角バックスラッシュ ✓ JISX0201:半角円記号文字コード略歴 Powered by Rabbit 2.0.6
  14. 14. ASCIIと異なる文字 ✓ 符号位置0x7E ✓ ASCII:半角チルダ ✓ JISX0201:半角オーバーライン文字コード略歴 Powered by Rabbit 2.0.6
  15. 15. ASCIIと異なる文字 ✓ ASCIIかJISX0201かは曖昧 ✓ 環境によって表示が変わる ✓ 日本のフォントは円記号 ✓ 外国のフォントはバックスラッシュ ✓ 7Eは日本でも大抵チルダ文字コード略歴 Powered by Rabbit 2.0.6
  16. 16. Shift_JIS文字コード略歴 Powered by Rabbit 2.0.6
  17. 17. Q&A ✓ Q.あなたの母語は何語ですか? ✓ A.日本語 ✓ Q.日本語は英字アルファベットだ けで表現できますか? ✓ A.いいえ文字コード略歴 Powered by Rabbit 2.0.6
  18. 18. ひらがなや漢字が必要 ✓ 常用漢字 2,136文字(2010年 改定) 8 ✓ 1バイト = 8ビット = 2 = 256 ✓ 1バイトでは表現できない文字コード略歴 Powered by Rabbit 2.0.6
  19. 19. 2バイトコード ✓ 1文字を2バイトで符号化 16 ✓ 2バイト = 16ビット = 2 = 65,536文字コード略歴 Powered by Rabbit 2.0.6
  20. 20. JIS X 0208 ✓ 日本工業規格 ✓ JIS第1・第2水準漢字を定義 ✓ 最新版では6,879文字を収録 ✓ 1983年に大幅な変更 ✓ 異字体の符号位置入れ替え ✓ 字形の変更文字コード略歴 Powered by Rabbit 2.0.6
  21. 21. JIS X 0213 ✓ 日本工業規格 ✓ JIS X 0208の拡張(後方互換) ✓ JIS第3・第4水準漢字を定義 ✓ 環境によってはJISX0213に対応 していない(JIS第3・第4水準漢字 が使えない)文字コード略歴 Powered by Rabbit 2.0.6
  22. 22. Shift_JISの成り立ち JIS X 0201 + JIS X 0208(JIS X 0213)文字コード略歴 Powered by Rabbit 2.0.6
  23. 23. Shift_JISの特徴 ✓ 日本語が表現できる ✓ 半角カナが使える ✓ JISX0201との互換性文字コード略歴 Powered by Rabbit 2.0.6
  24. 24. Shift_JISの例 ✓ 平成 24 ✓ 95 BD 90 AC 20 32 34文字コード略歴 Powered by Rabbit 2.0.6
  25. 25. Shift_JISの欠点 ✓ 全角半角問題 ✓ 「A」と「A」、「ア」と「ア」など ✓ 全角文字を扱える文字コード共通の問 題 ✓ JISX0201の副作用 ✓ だめ文字文字コード略歴 Powered by Rabbit 2.0.6
  26. 26. Shift_JISの派生 ✓ WindowsではShift_JISを拡張し た文字コードが使われている ✓ Windows31-JやMS932やCP932な どと呼ばれる ✓ 重複符号化(㈱問題) ✓ 同じ文字に複数の符号位置文字コード略歴 Powered by Rabbit 2.0.6
  27. 27. UTF-8文字コード略歴 Powered by Rabbit 2.0.6
  28. 28. Q&A ✓ Q.今はどんな時代ですか? ✓ A.国際化時代 ✓ Q.Shift_JISの欠点はどこですか? ✓ A.日本語しか扱えない文字コード略歴 Powered by Rabbit 2.0.6
  29. 29. Unicode ✓ 世界中の言語を表現できる文字 コードの仕様がUnicode ✓ 110,181文字(2012年1月)文字コード略歴 Powered by Rabbit 2.0.6
  30. 30. Unicode ✓ Unicodeの実装の一つがUTF-8 ✓ 他にもUTF-16など文字コード略歴 Powered by Rabbit 2.0.6
  31. 31. UTF-8の特徴 ✓ ASCIIを拡張 ✓ Shift_JISとは違い、JISX0201の拡張 ではない ✓ 半角カナなどの符号位置がShift_JISと 違う ✓ だめ文字がない文字コード略歴 Powered by Rabbit 2.0.6
  32. 32. 1文字のバイト数 ✓ ASCII ✓ 全て半角文字 = 全て1バイト ✓ Shift_JIS ✓ 半角 = 1バイト ✓ 全角 = 2バイト文字コード略歴 Powered by Rabbit 2.0.6
  33. 33. 1文字のバイト数 ✓ UTF-8 ✓ 半角 = 主に1バイト ✓ 全角 = 日本語は3バイト ✓ 記号は3バイトか2バイト文字コード略歴 Powered by Rabbit 2.0.6
  34. 34. UTF-8の例 ✓ 平成 24 ✓ E5 89 B3 E6 88 90 20 32 34文字コード略歴 Powered by Rabbit 2.0.6
  35. 35. 1バイトでない半角文字 ✓ (半角)が2種類 ✓ 5C (ASCII): 規格上はバックスラッシュ ✓ C2 A5 (UTF-8): 規格上は円記号 ✓ 2バイトの半角文字文字コード略歴 Powered by Rabbit 2.0.6
  36. 36. 1バイトでない半角文字 ✓ ~(半角)も2種類 ✓ 7E (ASCII): 規格上はチルダ ✓ E2 80 BE (UTF-8): 規格上はオーバ ーライン ✓ 3バイトの半角文字文字コード略歴 Powered by Rabbit 2.0.6
  37. 37. 半角カナ ✓ ア (半角) ✓ B1 (Shift_JIS) ✓ EF BD B1 (UTF-8) ✓ UTF-8の半角カナは全て3バイト ✓ 単純なバイト数チェックでは、半角 か全角か判別できない文字コード略歴 Powered by Rabbit 2.0.6
  38. 38. IBM版とMS版 ✓ IBM-Unicode(一般的な Unicode)とMS-Unicode(マイ クロソフト版Unicode)で符号位 置が異なる文字がある ✓ いわゆる波ダッシュ問題の要因文字コード略歴 Powered by Rabbit 2.0.6
  39. 39. 波ダッシュ問題 ✓ Windowsとそれ以外のOS間で の通信時などに文字化け ✓ 対象文字は10文字程度(環境に よる) ✓〜 — - ‖ ∥ ¦ ¬ ¢ £文字コード略歴 Powered by Rabbit 2.0.6
  40. 40. EBCDIC文字コード略歴 Powered by Rabbit 2.0.6
  41. 41. EBCDIC ✓ IBMによって定義された文字コー ド ✓ IBM製のメインフレーム(汎用機)など で現在も使用されている文字コード略歴 Powered by Rabbit 2.0.6
  42. 42. EBCDIC ✓ 半角文字の符号位置がASCIIと 異なる ✓ 全角文字の表現方法がShift_JIS やUTF-8と異なる ✓ 基本的にJIS第3・第4水準は含ま れない文字コード略歴 Powered by Rabbit 2.0.6
  43. 43. 半角文字 ✓ すべて1バイト ✓ 8ビット目まで使用 ✓ 制御文字エリアが大きい ✓ 0x00〜0x3Fと0xFF ✓ 汎用機で使用される特殊な制御文字 が含まれている文字コード略歴 Powered by Rabbit 2.0.6
  44. 44. 全角文字 ✓ 半角文字との区別は制御文字で 行う ✓ 全角の開始位置がシフトアウト(0x0E) ✓ 全角の終了位置がシフトイン(0x0F) ✓ 略してSO/SIなどと呼ばれる文字コード略歴 Powered by Rabbit 2.0.6
  45. 45. SO/SI ✓ 平成 24 ✓ 0E 45 8D 45 BA 0F 40 F2 F4文字コード略歴 Powered by Rabbit 2.0.6
  46. 46. うわっ… ✓ SIの欠如 ✓ 0E 45 8D 45 BA ✓ SO/SIのネスト ✓ 0E 45 8D 0E 45 BA 0F 0F ✓ SO/SIを対として扱うのではなく、 モード切替文字として扱うことで 対応文字コード略歴 Powered by Rabbit 2.0.6
  47. 47. まとめ文字コード略歴 Powered by Rabbit 2.0.6
  48. 48. 参考 ✓ プログラマのための文字コード技 術入門 ✓ 正規表現クックブック(66ページ) ✓ AIX 5L 日本語コード一覧表 ✓ jp_codebookで検索 ご静聴ありがとうございました。文字コード略歴 Powered by Rabbit 2.0.6

×