
たとえば、ディスク上にファイル名がバイナリでエンコードされたファイルがあるとします。ターミナルで
実行すると、何が起こるでしょうか? おそらく次のようになります:ls
ls
ファイル名のバイトを読み込み、現在設定されているエンコーディングで検索し、エンコーディングで見つからない場合は特定のバイトをエスケープし、ファイル名を出力します。stdout
- シェルは印刷されたものを読み取り
ls
、再度印刷します。stdout
- 端末はシェルが出力したものを読み取り、エンコーディングを調べ、これらのバイトがコードポイントXXを表していることを発見する。
- 端末はフォントテーブルでコードポイントXXを検索し、画面にフォントを描画します。
私の推測は間違っている可能性があります。エンコードに関する私の知識は、ほとんど初級レベルに過ぎません。間違いがあれば指摘してください。
私のようなユーザーがさらに学び、エンコードの問題をトラブルシューティングできるように、遠慮なく具体的かつ詳細に記述してください。システムの仕組みを理解することは、ユーザーの問題解決に役立つと思います。