cmd(telnet)上輸出不左對齊,而是有莫名其妙的空格
背景
在cmd上使用telnet連接本地端口的服務器時,以此作爲一個應答echo的客戶端,卻發現輸入的時候簽名總有莫名其妙的空格
解決
是輸出時的’\n’的問題,win下的回車應該爲"\r\n",單單一個’\n’就會出現上述問題。
ok問題得到解決
細究
在Windows中:
‘\r’ 回車,回到當前行的行首,而不會換到下一行,如果接着輸出的話,本行以前的內容會被逐一覆蓋;
‘\n’ 換行,換到當前位置的下一行,而不會回到行首;
故Windows系統裏面,每行結尾是“<回車><換行>”,即 “\r\n”;
而Unix系統裏,每行結尾只有“<換行>”,即 “\n” ;
Mac系統裏,每行結尾是“<回車>”,即 “\r” ;。
一個直接後果是,Unix/Mac系統下的文件在Windows裏打開的話,所有文字會變成一行;而Windows裏的文件在Unix/Mac下打開的話,在每行的結尾可能會多出一個^M符號。
具體原因和歷史可參考: linux和windows下的“回車符”和“換行符”