如何設定讓「gedit」,可以辨識「big5編碼的檔案」
原始討論
相關討論
相關索引
Recipe
測試環境
- gedit: 3.22.1
- gsettings: 2.54.1
探索開始
執行
$ gsettings list-recursively | grep gedit | grep encodings
顯示
org.gnome.gedit.preferences.encodings candidate-encodings ['']
org.gnome.gedit.preferences.encodings candidate-encodings ['']
org.gnome.gedit.preferences.encodings candidate-encodings ['']
get
執行下面指令,觀看「candidate-encodings」目前的設定值
$ gsettings get org.gnome.gedit.preferences.encodings candidate-encodings
顯示
['']
set
執行下面指令,設定「candidate-encodings」的值
$ gsettings set org.gnome.gedit.preferences.encodings candidate-encodings "['UTF-8', 'BIG5', 'BIG5-HKSCS', 'EUC-TW', 'GB18030', 'GB2312', 'GBK', 'CURRENT', 'ISO-8859-15', 'UTF-16']"
執行下面指令,觀看「candidate-encodings」目前的設定值
$ gsettings get org.gnome.gedit.preferences.encodings candidate-encodings
顯示
['UTF-8', 'BIG5', 'BIG5-HKSCS', 'EUC-TW', 'GB18030', 'GB2312', 'GBK', 'CURRENT', 'ISO-8859-15', 'UTF-16']
reset
執行下面指令,恢復「candidate-encodings」的預設值
$ gsettings reset org.gnome.gedit.preferences.encodings candidate-encodings
執行下面指令,觀看「candidate-encodings」目前的設定值
$ gsettings get org.gnome.gedit.preferences.encodings candidate-encodings
顯示
['']
schema
關於「candidate-encodings」的預設值,可以在「/usr/share/glib-2.0/schemas/org.gnome.gedit.gschema.xml」這個檔案找到。
執行
$ grep 'candidate-encodings' /usr/share/glib-2.0/schemas/org.gnome.gedit.gschema.xml -B 1 -A 7
顯示
<pre><code>
<schema gettext-domain="gedit" id="org.gnome.gedit.preferences.encodings" path="/org/gnome/gedit/preferences/encodings/">
<key name="candidate-encodings" type="as">
<default>['']</default>
<summary>Candidate Encodings</summary>
<description>List of candidate encodings shown in the Character Encoding menu in the open/save file chooser.
"CURRENT" represents the current locale encoding. Only recognized encodings are used.
The default value is the empty list, in which case gedit will choose good defaults depending on the country and language.</description>
</key>
</schema>
</code></pre>
若要得到「default value」,除了上面可以「reset」再「get」。
也可以執行下面指令,直接從「/usr/share/glib-2.0/schemas/org.gnome.gedit.gschema.xml」撈取出來。
$ grep 'candidate-encodings' /usr/share/glib-2.0/schemas/org.gnome.gedit.gschema.xml -B 1 -A 7 | grep '<default>' | cut -d '>' -f 2 | cut -d '<' -f 1
顯示
['']
或是執行下面指令,直接從「/usr/share/glib-2.0/schemas/org.gnome.gedit.gschema.xml」撈取出來。
$ grep 'candidate-encodings' /usr/share/glib-2.0/schemas/org.gnome.gedit.gschema.xml -B 1 -A 7 | grep '<default>' | awk -F '<default>' '{print $2}' | awk -F '</default>' '{print $1}'
顯示
['']
dconf-editor
上面是透過下指令的方式,來設定「gsettings」。
也可以透過圖形工具來操作,可以透過「dconf-editor」來設定 而「dconf-editor」是屬於「dconf-editor」這個套件。
執行
$ sudo apt-get install dconf-tools
或是執行
$ sudo apt-get install dconf-editor
然後執行「dconf-editor」,使用「candidate-encodings」當關鍵字查詢,就可以找到該筆資料,來維護。
gedit / 「Open Or SaveAs」/ Character Encoding
另外在「gedit」那也可以設定,
在「gedit」的主視窗,右上方,有一個「三條橫槓」圖示的「按鈕」, 按下後,就會出現一個下拉選單,可以看到其中有一個選項「Save As…」, 點選「Save As…」這個選項,就會跳出一個對話框。
在對話框左下方有一個選項,「Character Encoding:」, 請先下拉選單, 然後捲動到最下方,會有一個選項「Add or Remove…」, 點選它,就會出現另一個標題為「Character Encoding」的對話框, 在這個對話框,就可以維護(新增,刪除,排序)。
在「gedit」的主視窗,左上方有一個按鈕「Open」,按下後,會出現一個下拉選單,
在下拉選單下方,有一個按鈕「Other Documents…」,按下後,會出現一個標題為「Open」的對話框,
或是也可以直接使用快速鍵「
測試步驟
執行下面指令,先產生一個檔案「utf-8.txt」。
cat > utf-8.txt <<EOF
測試
中文檔案內容
EOF
執行下面指令,觀看「utf-8.txt」的檔案內容
$ cat utf-8.txt
顯示
測試
中文檔案內容
執行
$ file utf-8.txt
顯示
utf-8.txt: UTF-8 Unicode text
執行下面指令,將「utf-8.txt」的檔案內容,轉成「big5」編碼,並且輸出到「big5.txt」
$ iconv -f utf-8 -t big5 -o big5.txt utf-8.txt
執行下面指令,觀看「big5.txt」的檔案內容
$ cat big5.txt
顯示(亂碼)
����
�����ɮפ��e
執行
$ file big5.txt
顯示
big5.txt: ISO-8859 text
執行
$ sudo apt-get install uchardet python3-chardet
執行
$ uchardet big5.txt
顯示
BIG5
執行
$ chardet3 big5.txt
顯示
big5.txt: Big5 with confidence 0.99
這些工具有紀錄在「[索引] 文件編碼」。
回到正題,
直接點選「big5.txt」用「gedit」打開,可以看到正常顯示,不會出現亂碼。
或是也可以直接執行「$ gedit big5.txt
」,一樣會用「gedit」開啟「big5.txt」。