Terminal
輸入鍵與輸入鍵 (CR) 不同
許多網頁說輸入鍵的ASCII碼是13(0d)。
Enter 鍵被視為輸入 (CR)。
現在讓我們做一個實驗。
打開 vim 只需按三下 enter 鍵,什麼都不做,然後將文件保存為 test.csv。
xxd test.csv 0000000: 0a0a 0a
我的結論得到了。
enter 鍵的 ascii 值為 0a ,表示換行,它不同於輸入(ascii 中的 13 或 0d)。
是對還是不對?
當您按下 時,您的終端會發送輸入
Enter
,並且在類 Unix 系統上,終端驅動程序會將其轉換為換行符(“換行符”)。這就是
icrnl
顯示的特徵stty -a
,例如,$ stty -a speed 38400 baud; rows 40; columns 80; line = 0; intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
程序(甚至是 shell 腳本)可以將其關閉以讀取實際的輸入符以將其與
*Control*``J
(換行符)區分開來。