今天在執行Linux下的tree命令的時候,出現了亂碼。上網查了一下說需要使用tree --charset ASCII,強制使用ASCII字符。這樣確實可以輸出正常了。但是我的環境里的LANG=US.UTF-8,這樣如果有非ASCII字符的時候,那么一 樣會造成輸出亂碼。
既然tree讓可以設置charset,那么根據我的環境下的字符集,我就執行tree --charset UTF-8,發現還是亂碼。這就想不通了。突然意識到是不是自己的SecureCRT里面的設置不對啊。
檢查SecureCRT->Session Options->Terminal->Appearance->Character Encoding,哈哈,果然啊,這里沒有設置成跟遠程主機一樣的UTF-8,而是default。改過來以后,運行tree,一切正常。
強制使用ASCII字符集這種方式只是一時爽,所謂workaround是也,要想長久爽,真爽,還是要找到root cause。