Ls
問號而不是控制台中的國家字母
我有Netgear Stora MS2000(它使用 Red Hat 的修改版本)並且在通過 SSH 連接時遇到奇怪的字型問題。請注意,通過 PuTTY 從 Windows 連接和
ssh
從 Mac 控制台執行時都會發生這種情況。當我使用一些波蘭字母並鍵入
ls
時,它顯示為兩個問號。但是,當我嘗試自動完成文件名時,它會正確顯示。如下圖所示:試圖將變數更改
TERM
為LANG
不同的值,但沒有任何運氣。我還注意到 的錯誤顯示
mc
,這可能(或可能不)與同一問題有關:任何想法我應該改變什麼?
螢幕由 PuTTY 製成,但在 Mac 終端上看起來相同。
編輯
回答評論中的問題,這裡是
locale
,alias ls
和的輸出echo młodość | od -t x1
:-bash-3.2$ locale locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG=pl_PL.UTF-8 LC_CTYPE="pl_PL.UTF-8" LC_NUMERIC="pl_PL.UTF-8" LC_TIME="pl_PL.UTF-8" LC_COLLATE="pl_PL.UTF-8" LC_MONETARY="pl_PL.UTF-8" LC_MESSAGES="pl_PL.UTF-8" LC_PAPER="pl_PL.UTF-8" LC_NAME="pl_PL.UTF-8" LC_ADDRESS="pl_PL.UTF-8" LC_TELEPHONE="pl_PL.UTF-8" LC_MEASUREMENT="pl_PL.UTF-8" LC_IDENTIFICATION="pl_PL.UTF-8" LC_ALL= -bash-3.2$ alias ls alias ls='ls --color=tty' -bash-3.2$ echo młodość | od -t x1 0000000 6d c5 82 6f 64 6f c5 9b c4 87 0a 0000013 -bash-3.2$
根據 Gilles 的評論,我設法解決了這個問題。問題是缺少 pl_PL 語言環境。我在PC LOAD LETTER 部落格上找到了說明:
cd ~/sometemp wget http://sourceforge.net/projects/dsgpl/files/DSM%203.1%20Tool%20Chains/Marvell%2088F628x%20Linux%202.6.32/gcc421_glibc25_88f628x.tgz tar xvfz gcc421_glibc25_88f628x.tgz cd arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc/usr/bin cp locale /opt/bin cp localedef /opt/bin cp -R arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc/usr/share/i18n /usr/share #-----keep another copy safe in case DSM is reinstalled later cp -R arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc/usr/share/i18n /opt/share mkdir /usr/lib/locale
然後鍵入:
localedef -c -f UTF-8 -i pl_PL pl_PL.utf8
並重新記錄一切正常。