Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
文字コード略歴
Search
Masafumi Yokoyama
May 18, 2012
Technology
1
330
文字コード略歴
日本の文字コードの歴史を簡単にまとめました。
Masafumi Yokoyama
May 18, 2012
Tweet
Share
More Decks by Masafumi Yokoyama
See All by Masafumi Yokoyama
5分で学ぶGTK+
myokoym
2
51
Rabbit on Sinatra
myokoym
1
120
Other Decks in Technology
See All in Technology
[OCI Skill Mapping] AWSユーザーのためのOCI(2025年8月20日開催)
oracle4engineer
PRO
2
140
会社にデータエンジニアがいることでできるようになること
10xinc
9
1.6k
キャリアを支え組織力を高める「多層型ふりかえり」 / 20250821 Kazuki Mori
shift_evolve
PRO
2
300
TypeScript入門
recruitengineers
PRO
12
2.7k
つくって納得、つかって実感! 大規模言語モデルことはじめ
recruitengineers
PRO
20
5.4k
浸透しなさいRFC 5322&7208
hinono
0
120
新規案件の立ち上げ専門チームから見たAI駆動開発の始め方
shuyakinjo
0
110
JuniorからSeniorまで: DevOpsエンジニアの成長ロードマップ
yuriemori
0
110
DeNA での思い出 / Memories at DeNA
orgachem
PRO
3
1.6k
Amazon Bedrock AgentCore でプロモーション用動画生成エージェントを開発する
nasuvitz
6
420
「守る」から「進化させる」セキュリティへ ~AWS re:Inforce 2025参加報告~ / AWS re:Inforce 2025 Participation Report
yuj1osm
1
120
自社製CMSからmicroCMSへのリプレースがプロダクトグロースを加速させた話
nextbeatdev
0
130
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
Automating Front-end Workflow
addyosmani
1370
200k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
RailsConf 2023
tenderlove
30
1.2k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Code Reviewing Like a Champion
maltzj
525
40k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
4 Signs Your Business is Dying
shpigford
184
22k
A better future with KSS
kneath
239
17k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
480
Measuring & Analyzing Core Web Vitals
bluesmoon
9
570
Transcript
文字コード略歴 Powered by Rabbit 2.0.6 文字コード略歴 よこやままさふみ 社内勉強会 2012/05/18
文字コード略歴 Powered by Rabbit 2.0.6 自己紹介 横山昌史 ✓ 入社4年目 ✓
プログラマ etc... ✓ 所属プロジェクト Java、UNIX、雑用 etc... ✓ 文字コードの "るつぼ" ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 Rabbitについて プレゼンテーションツール ✓ 実装: Ruby/GTK
✓ 動作: UNIX/Win/Mac ✓ 文章とデザインの分離 バージョン管理しやすい ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 文字コードとは 文字をコンピュータで扱うための 符号化方式 ✓ エンコード、キャラクターセットとも
呼ばれる ✓
文字コード略歴 Powered by Rabbit 2.0.6 符号化 文字や音声などを0と1のデジタ ルデータに変換すること ✓ 16進数で記述されることが多い
Javaなどでは、頭に"0x"を付けると16 進数として扱われる ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 よく使われる文字コード ASCII ✓ Shift_JIS ✓
UTF-8(Unicode) ✓ EBCDIC ✓
文字コード略歴 Powered by Rabbit 2.0.6 ASCII
文字コード略歴 Powered by Rabbit 2.0.6 ASCII American Standard Code for
Information Interchange
文字コード略歴 Powered by Rabbit 2.0.6 ASCII 英語を表現するための文字コード 英字アルファベット、記号 ✓ いわゆる半角文字
✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 ASCII 1文字につき7ビットの1バイトコ ード 7ビット =
2 7 = 128 ✓ 16進数で言うと0x00〜0x7Fまで ✓ 1バイト = 8ビットのため、1ビット余り ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 ASCIIの例 Heisei 24 48 65
69 73 65 69 20 32 34 16進数(0xは省略) ✓ ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 JIS X 0201 日本工業規格 ✓
一部の符号位置がASCIIと違う ✓ 半角カナが使える 8ビット目を拡張 ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 ASCIIと異なる文字 符号位置0x5C ASCII:半角バックスラッシュ ✓ JISX0201:半角円記号
✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 ASCIIと異なる文字 符号位置0x7E ASCII:半角チルダ ✓ JISX0201:半角オーバーライン
✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 ASCIIと異なる文字 ASCIIかJISX0201かは曖昧 環境によって表示が変わる ✓ ✓
日本のフォントは円記号 ✓ 外国のフォントはバックスラッシュ ✓ 7Eは日本でも大抵チルダ ✓
文字コード略歴 Powered by Rabbit 2.0.6 Shift_JIS
文字コード略歴 Powered by Rabbit 2.0.6 Q & A Q.あなたの母語は何語ですか? A.日本語
✓ ✓ Q.日本語は英字アルファベットだ けで表現できますか? A.いいえ ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 ひらがなや漢字が必要 常用漢字 2,136文字(2010年 改定) ✓
1バイト = 8ビット = 28 = 256 ✓ 1バイトでは表現できない ✓
文字コード略歴 Powered by Rabbit 2.0.6 2バイトコード 1文字を2バイトで符号化 ✓ 2バイト =
16ビット = 216 = 65,536 ✓
文字コード略歴 Powered by Rabbit 2.0.6 JIS X 0208 日本工業規格 ✓
JIS第1・第2水準漢字を定義 ✓ 最新版では6,879文字を収録 ✓ 1983年に大幅な変更 異字体の符号位置入れ替え ✓ 字形の変更 ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 JIS X 0213 日本工業規格 ✓
JIS X 0208の拡張(後方互換) ✓ JIS第3・第4水準漢字を定義 ✓ 環境によってはJISX0213に対応 していない(JIS第3・第4水準漢字 が使えない) ✓
文字コード略歴 Powered by Rabbit 2.0.6 Shift_JISの成り立ち JIS X 0201 +
JIS X 0208(JIS X 0213)
文字コード略歴 Powered by Rabbit 2.0.6 Shift_JISの特徴 日本語が表現できる ✓ 半角カナが使える JISX0201との互換性
✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 Shift_JISの例 平成 24 95 BD
90 AC 20 32 34 ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 Shift_JISの欠点 全角半角問題 「A」と「A」、「ア」と「ア」など ✓ 全角文字を扱える文字コード共通の問
題 ✓ ✓ JISX0201の副作用 だめ文字 ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 Shift_JISの派生 WindowsではShift_JISを拡張し た文字コードが使われている Windows31-JやMS932やCP932な どと呼ばれる
✓ 重複符号化(㈱問題) 同じ文字に複数の符号位置 ✓ ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 UTF-8
文字コード略歴 Powered by Rabbit 2.0.6 Q & A Q.今はどんな時代ですか? A.国際化時代
✓ ✓ Q.Shift_JISの欠点はどこですか? A.日本語しか扱えない ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 Unicode 世界中の言語を表現できる文字 コードの仕様がUnicode ✓ 110,181文字(2012年1月)
✓
文字コード略歴 Powered by Rabbit 2.0.6 Unicode Unicodeの実装の一つがUTF-8 他にもUTF-16など ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 UTF-8の特徴 ASCIIを拡張 Shift_JISとは違い、JISX0201の拡張 ではない ✓
半角カナなどの符号位置がShift_JISと 違う ✓ だめ文字がない ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 1文字のバイト数 ASCII 全て半角文字 = 全て1バイト
✓ ✓ Shift_JIS 半角 = 1バイト ✓ 全角 = 2バイト ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 1文字のバイト数 UTF-8 半角 = 主に1バイト
✓ 全角 = 日本語は3バイト 記号は3バイトか2バイト ✓ ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 UTF-8の例 平成 24 E5 89
B3 E6 88 90 20 32 34 ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 1バイトでない半角文字 \(半角)が2種類 5C (ASCII): 規格上はバックスラッシュ
✓ C2 A5 (UTF-8): 規格上は円記号 2バイトの半角文字 ✓ ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 1バイトでない半角文字 ~(半角)も2種類 7E (ASCII): 規格上はチルダ
✓ E2 80 BE (UTF-8): 規格上はオーバ ーライン 3バイトの半角文字 ✓ ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 半角カナ ア (半角) B1 (Shift_JIS)
✓ EF BD B1 (UTF-8) UTF-8の半角カナは全て3バイト ✓ ✓ ✓ 単純なバイト数チェックでは、半角 か全角か判別できない ✓
文字コード略歴 Powered by Rabbit 2.0.6 IBM版とMS版 IBM-Unicode(一般的な Unicode)とMS-Unicode(マイ クロソフト版Unicode)で符号位 置が異なる文字がある
いわゆる波ダッシュ問題の要因 ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 波ダッシュ問題 Windowsとそれ以外のOS間で の通信時などに文字化け ✓ 対象文字は10文字程度(環境に
よる) 〜 — - ‖ ∥ ¦ ¬ ¢ £ ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 EBCDIC
文字コード略歴 Powered by Rabbit 2.0.6 EBCDIC IBMによって定義された文字コー ド IBM製のメインフレーム(汎用機)など で現在も使用されている
✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 EBCDIC 半角文字の符号位置がASCIIと 異なる ✓ 全角文字の表現方法がShift_JIS
やUTF-8と異なる ✓ 基本的にJIS第3・第4水準は含ま れない ✓
文字コード略歴 Powered by Rabbit 2.0.6 半角文字 すべて1バイト 8ビット目まで使用 ✓ ✓
制御文字エリアが大きい 0x00〜0x3Fと0xFF ✓ 汎用機で使用される特殊な制御文字 が含まれている ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 全角文字 半角文字との区別は制御文字で 行う 全角の開始位置がシフトアウト(0x0E) ✓
全角の終了位置がシフトイン(0x0F) ✓ ✓ 略してSO/SIなどと呼ばれる ✓
文字コード略歴 Powered by Rabbit 2.0.6 SO/SI 平成 24 0E 45
8D 45 BA 0F 40 F2 F4 ✓ ✓
文字コード略歴 Powered by Rabbit 2.0.6 うわっ… SIの欠如 0E 45 8D
45 BA ✓ ✓ SO/SIのネスト 0E 45 8D 0E 45 BA 0F 0F ✓ ✓ SO/SIを対として扱うのではなく、 モード切替文字として扱うことで 対応 ✓
文字コード略歴 Powered by Rabbit 2.0.6 まとめ
文字コード略歴 Powered by Rabbit 2.0.6 参考 プログラマのための文字コード技 術入門 ✓ 正規表現クックブック(66ページ)
✓ AIX 5L 日本語コード一覧表 jp_codebookで検索 ✓ ✓ ご静聴ありがとうございました。