是否可以在 geany 中以特定編碼打開文件?
我的系統語言環境是 ru_RU.KOI8-R,我希望 geany 以這種編碼創建所有新文件。在其設置中,我將“預設編碼(新文件)”設置為“西里爾文(KOI8-R)”,它適用於新文件。但是當我打開任何沒有西里爾字元的文件時,geany 認為它是 Unicode 格式的。
有沒有辦法告訴 geany 打開 KOI8-R 中的所有文件(即使其中沒有非 ASCII 字元),或者唯一的方法是將程式碼頁上半部分的任何字元放到所有源文件中?
我試圖解決這個問題,但似乎 Geany 強制使用編碼的唯一方法是在文件的開頭有一個相應的行。如果文件包含 UTF-8 字元,geany 將使用此語言環境。
除其他外,我嘗試了以下操作。您也可以自己嘗試一下,以防它在您的機器上執行得更好。
- 將我的系統的語言環境切換為希臘語
ISO-8859-7
(en_US.UTF-8
以前是這樣)。我必須先安裝新的本地使用dpkg-reconfigure locales
- 使用命令將測試文件轉換
UTF-8
為所需的語言環境(ISO-8859-7
在我的情況下)iconv -f UTF-8 -t ISO-8859-7 c.txt --output=c2.txt
- 要更改 geany 首選項,請在 Preferences-Files 選項卡
Greek ISO-8859-7
中為新文件和“預設編碼(現有的非 Unicode 文件)”應用編碼PS:設置也可以直接通過look/edit 文件進行驗證/更改,查找
~/.config/geany/geany.conf
行pref_editor_default_new_encoding=UTF-8 #changed to ISO-8859-7
和行pref_editor_default_open_encoding=None #changed to ISO-8859-7
- 然後唯一真正起作用的是在文件的開頭插入以下行:
# geany_encoding=ISO-8859-7 #
Geany 線上手冊 - Infile 編碼規範部分中描述了此解決方案。
作為避免一個一個打開所有文件並附加上述行的解決方法,您可以使用:
echo -e "# geany_encoding=ISO-8859-7 #\n$(cat c.txt)" >c.txt
您還可以創建一個循環來快速“geany-convert”所有文件;像這樣的東西:
for file in "$(find . -type f -name "*.txt");do echo -e "# geany_encoding=ISO-8859-7 #\n$(cat $file)" >$file;done
我希望以上想法可以幫助您解決問題。
您還可以檢查並詢問 geany 開發人員是否在 Geany 的未來計劃中在打開文件期間強制編碼。
PS:您可以隨時在 Geany 中打開文件,按
reload as <your encoding>
並保存。這應該以新的編碼保存文件。