Page 1
文字コードへの道
The Road to Character Encodings
pixiv Inc.
USAMI Kenta
2024-01-28 #retro_games_any
レトロゲームから得た学びの発表 #01
公開日:
by USAMI Kenta@tadsan
にオンラインのビデオ会議で開催された『レトロゲームから得た学びの発表 #01』で発表(20分)として発表しました。
2024-01-28 #retro_games_any
レトロゲームから得た学びの発表 #01
お前誰よ
コンピュータ内のデータのイメージ
…1,073,741,824
A B C D E F
1x
2x
3x
4x
5x
6x
7x
8x
非常に大雑把なイメージ
四角い箱
= メモリ
A b c
ところでコンピュータって0と1の世界なのでは…?
0と1の世界= binary (2進法)
0と1の世界= binary (2進法)= bit (2値データ)
粒度が細かすぎる
粒度が細かすぎる
= bytes (バイト)
非常に大雑把なイメージ (再掲)
四角い箱
箱に入るのは
0~256の数字だけ
= メモリ
A b c
数字に置き換えて箱に入れる
データをまとめて扱う
日本語文字列をメモリに入れようあいうえお数字に置き換える方法を…
文字をデータにしてみよう
2進数10進数文字
00000 A
00001 B
00010 C
00011 D
00100 E
00101 F
00110 G
00111 H
……
11001 Z
2進数10進数文字
000000あ
000001い
000010う
000011え
000100お
………
101100わ
101101を
101110ん
2進数10進数文字
000000あ
000001い
000010う
000011え
000100お
………
101100わ
101101を
101110ん
2進数10進数文字
000000あ
000001い
000010う
000011え
お
………
101100わ
101101を
101110ん
2進数10進数文字
000000あ
000001い
000010う
000011え
お
………
101100わ
101101を
101110ん
ちょくちょくこの形式の表を見ることになるかと思います
そういうことを考えると文字コードを設計できる
現在のコンピュータはどうやって文字を扱うか
ASCII (アスキー)
必ず先頭が0になる
思われていたらしい
制御文字
21世紀の環境でUnicode以外を採用する動機は激減
かつてはそうではなかった(と伝え聞く)
『しんでしまうとは なにごとだ!』 堀井雄二(編集・執筆)株式会社スクウェア・エニックスデジタル版 Ver.1.00 2018年9月1日(Kindle)p11より引用
全部この32キロバイトに押し込める必要がある
ドラゴンクエスト (FC) 解析資料 - 文字コード より引用 (2025年1月28日閲覧)
ドラクエ命 第 II 部 解析 第 3 章 SFC 版ドラクエ 5 (1992) 3.6. テキスト解析
151匹のポケモンを押し込むには明らかに大変
文字コード対応表 - pokemonbug @ ウィキ - atwiki より引用 (2024年12月22日閲覧)
社長が訊く『ポケットモンスター ハートゴールド・ソウルシルバー』 より引用 (2025年1月28日閲覧)
今や文字コードを独自設計したり、フォントをビット単位で押し込めるような時代ではなくなった
サイズ削減のためバンドルするフォントファイルの文字種を削ったり、独自の文字を表示するためにUnicodeの私用領域を使うことはあると思う
