最近換了 Debian 9 的系統(tǒng),重新部署了一下開發(fā)環(huán)境。在安裝完 VsCode 之后,發(fā)現(xiàn)在終端里輸出中文文件名時出現(xiàn)一堆
???。
原因分析
不能正確輸出你想要的文字時,一是可能你寫錯了,二是計算機不認識。所以如果能保證自己沒寫錯,那就是計算機不認識你寫的東西了,也就是說編碼或者相關(guān)語言配置不對了。
問題解決
既然知道了大概的原因了,那就看一下目前在 VsCode 終端里是使用的什么語言和編碼吧,使用 locale 命令 或者 echo 輸出一下要查看的環(huán)境變量。
我這里用的是 locale 命令查看全部的語言環(huán)境設(shè)置,發(fā)現(xiàn)設(shè)置的值是 en_US.UTF-8,編碼沒問題,但是語言卻是英語(美國)而不是中文(簡體)。
使用 LANG="zh_CN.UTF-8 臨時設(shè)置一下環(huán)境變量, 重新輸出一下中文文件名,發(fā)現(xiàn)輸出正常了。
找到解決辦法了,但是這是一種臨時生效的方法,怎樣才能讓它長期生效呢?
VsCode 配置文件里有一個配置項 terminal.integrated.env.* 可以添加環(huán)境變量到 VsCode 進程中, 因為我是 linux 系統(tǒng),所以在配置文件 setting.json 中使用 terminal.integrated.env.linux 來配置:
"terminal.integrated.env.linux": {
"LC_ALL": "zh_CN.UTF-8"
}
配置后保存,重啟 VsCode 終端, 生效。
舉一反三
如果在使用 linux 的時候發(fā)現(xiàn)內(nèi)置終端的中文亂碼,也是可以采用這種方法來解決的,修改 .bashrc 文件可以長期修改環(huán)境變量。