したがって、私の質問は簡単です: ユーザーが (物理キーボードまたはその他の方法で) 文字キーを「入力」した後、プログラムは生の入力ビットをどのように受け取るのですか?
つまり、プログラムが生のビットとして受け取った後の文字エンコーディングがどのように機能するかは知っていますが、そもそもそのビットシーケンスがどのように表示されるかについては明確ではありません。
私は少し読んでいましたが、これは私のGoogle-fuの難しい検索であることが判明しました. OS が入力デバイス (通常はキーボード) からスキャン コードを受け取り、これを文字マッピングとキーボード レイアウトを使用してエンコーディングにマップし、結果のビット シーケンスをプログラムに渡すようです。私は正しいですか?もしそうなら、私にとって唯一欠けている部分はこれです:
キーボード レイアウトは、スキャン コードが対応する文字をどのように定義しますか? Unicode コード ポイントを使用していますか? OS固有の内部テーブル?
次に、プログラムは、コンパイル時に (OS からの) 入力を期待する文字エンコーディングを定義しますか? まったくですか?