假设磁盘上存储了一个文件,其文件名以二进制编码。
当我ls
在终端运行时,会发生什么?
也许像:
ls
读取文件名字节,在当前设置的编码中查找,如果在编码中找不到某些字节,则转义某些字节,然后打印出文件名stdout
- Shell 读取
ls
打印内容,然后再次将其打印到stdout
- 终端读取 shell 刚刚打印出来的内容,在编码中查找,发现这些字节代表代码点 XX
- 然后终端在字体表中查找代码点XX,并在屏幕上绘制字体
我的猜测可能是错误的,因为我对编码的了解几乎只是入门级别,如果有错误请指出。
请毫不犹豫地具体和深入,以帮助像我这样的用户了解更多信息并解决编码问题。我认为了解系统如何工作可以帮助用户解决他们的问题。