Linux 檔案名稱中的西里爾字母符號

Linux 檔案名稱中的西里爾字母符號

我有一個Linux,由Buildroot工具製作。

我在創建帶有西里爾字母名稱的檔案時遇到了問題。當我嘗試建立文件時,例如使用這樣的命令:

touch файл.txt

我得到一個文件,名為????.txt.

我嘗試導出LANG變數:

# export LANG=ru_RU.utf8
# echo $LANG
ru_RU.utf8

我還嘗試在目錄和 EXT3 分區中建立文件/temp,但結果是相同的。

一般來說,我可以在系統中使用西里爾字母:程式可以列印它們,並且我可以在程式中使用西里爾字母符號(例如在 vi 中)。

我還能嘗試做什麼?

答案1

touch 做過正確建立檔案名稱。但ls沒有顯示它。這是因為ls預設情況下,任何無法識別為可列印字元的內容都會顯示問號。

您可以使用另一個命令來顯示目錄的內容來測試這一點。嘗試以下任一命令:

$ ls --show-control-chars
$ sh -c 'echo *'
$ python3 -c 'import os; print(os.listdir("."))'

將 $LANG 設定為 UTF-8 語言環境(就像您鍵入 時所做的那樣export LANG=ru_RU.UTF-8)應該可以解決問題。由於這不起作用,請檢查

  • 如果LC_CTYPE已設置,它將覆蓋 的值LANG
  • 您的系統安裝了俄語支援嗎?如果沒有,請使用其他受支援的區域設置,例如en_US.UTF-8.

相關內容