Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Windowsにおける Rubyのエンコーディングの話 Ruby3版 pixiv Inc. @Ruby3さみっと 2020.4.17
Slide 2
Slide 2 text
2 自己紹介 ● Rubyのコミッタ ○ Windows ○ 安定版(今は2.6と2.5) ■ 古いRubyを殺す係 ● おしごとは画像変換・配信の仕組みを作ること
Slide 3
Slide 3 text
3 Ruby3でWindows版の エンコーディングが どうなるか 今日のお話
Slide 4
Slide 4 text
4 Ruby3では 全部UTF-8にするぞ! 結論
Slide 5
Slide 5 text
5 おしまい
Slide 6
Slide 6 text
6 ……これだけ、というのは あまりにもあんまりなので、 どういう話なのか一応解説
Slide 7
Slide 7 text
7 CodePage 背景
Slide 8
Slide 8 text
8 MS-DOS(知ってる?) 背景
Slide 9
Slide 9 text
9 MS-DOS由来 : OEM CodePage 古き良きコンソール画面用 ハードウェアに依存 背景
Slide 10
Slide 10 text
10 16bit Windows由来 : ANSI CodePage グラフィカル画面用 ソフトウェア的に表示 背景
Slide 11
Slide 11 text
11 32bit Windows由来 : UTF-16LE (※CodePageではないが) WindowsのAPI(いわゆるW版) 背景
Slide 12
Slide 12 text
12 ファイルシステムのエンコーディング MS-DOS時代からの資産を継承 → OEM CodePage 背景
Slide 13
Slide 13 text
13 I/Oのエンコーディング WindowsのAPI(いわゆるA版) → ANSI CodePage 背景
Slide 14
Slide 14 text
14 Ruby 1.8まで ANSI CodePageベース OEM CodePageとの違いは無視 Rubyでは?
Slide 15
Slide 15 text
15 Ruby 1.9から 多言語化の仕組みが入った 互換性を保つため、Windowsでは、 ・I/OはANSI CodePage ・ファイルシステムはOEM CodePage Rubyでは?
Slide 16
Slide 16 text
16 Ruby 2.0から スクリプトのエンコーディングの デフォルトがUTF-8になった Rubyでは?
Slide 17
Slide 17 text
17 結果、どうなったか? → ANSI CP、OEM CP、UTF-8が 入り乱れた状態 Rubyでは?
Slide 18
Slide 18 text
18 「全部UTF-8に統一しろよ!」 いや、わかる、わかるんだが、 今までのコード資産を守るために 互換性を保たないと…… Rubyでは?
Slide 19
Slide 19 text
19 202X、殺伐としたRuby界に 颯爽とRuby3が!!! → メジャーバージョン上がるなら 互換性壊しても、いいよね? Rubyでは?
Slide 20
Slide 20 text
20 Ruby3では 全部UTF-8にするぞ! 結論
Slide 21
Slide 21 text
21 今度こそ おしまい