[FC8]linux下的正簡(繁簡)中文轉換

因為兩岸中文系統的不一樣,以致於現在電腦系統的中文系統出現了正體中文和簡體中文的差異。有些檔案或是網頁是用簡體中文寫的,有些使用正體中文的朋友看
起來相當吃力。反之亦然。在linux下這只要下個指令就可以做好轉換,只是在做轉換前必須先弄清楚目前的資料是使用什麼編碼方式。

在這裡將採用iconv這個指令來達成這個動作。iconv是linux底下用來轉換編碼方式的指令,在這裡介紹使用iconv達成正體中文和簡體中文互換的方法。現在大部份的系統預設採用的是Unicode(UTF8)編碼方式,如果現在有個檔案text.txt內容是採用UTF8編碼的正體中文,透過以下的幾個指令可以將檔案內容改成UTF8編碼的簡體中文。
第一步,先將UTF8編碼轉換成Big5編碼並存成temp_big5.txt
# iconv text.txt -f utf8 -t big5 -o temp_big5.txt

第二步,再將temp_big5.txt由Big5編碼轉換到gb2312編碼並存成temp_gb2312.txt
# iconv text_big5.txt -f big5 -t gb2312 -o temp_gb2312.txt

第三步,再將temp_gb2312.txt由gb2312編碼轉換回UTF8編碼並存成target.txt
# iconv temp_gb2312.txt -f gb2312 -t utf8 -o target.txt

這樣就完成了將text.txt中的繁體中文轉換到簡體中文了。

但是每次執行都這麼麻煩的執行那麼多次嗎?當然不用囉!以上那麼多的指令可以濃縮成一步,但是有點長就是了!
# iconv text.txt -f utf8 -t big5 | iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o target.txt
這樣就可以直接將text.txt檔案中的繁體中文轉換到target.txt的簡體中文了

當然還有更省事的方法,就是將指令存shell檔案,要用時就可以省下很多打字的時間了。將以下的內容存成tc2sc_file.sh
#Translate txt file from Traditional Chinese to Simply Chinese
iconv $1 -f utf8 -t big5 | iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o $2

再用chmod指令讓tc2sc.sh具有執行的權限
# chmod 755 tc2sc_file.sh

完成後就可以直接使用tc2sc_file.sh來做轉檔的工作,EX: tc2sc_file.sh 來源檔案 目的檔案

如果是要把簡體中文轉成正體中文的話,只要將編碼的順序整個反過來就可以了,如下。
# iconv text.txt -f utf8 -t gb2312 | iconv -f gb2312 -t big5 | iconv -f big5 -t utf8 -o target.txt

sc2tc_file.sh
#Translate txt file from Simply Chinese to Traditional Chinese
iconv $1 -f utf8 -t gb2312 | iconv -f gb2312 -t big5 | iconv -f big5 -t utf8 -o $2


沒有留言:

張貼留言

dnf upgrade fails with Error: GPG check FAILED

 OS: Fedora 36 今天在做  dnf  更新的時候,突然有很多 package 都出現簽章問題無法更新。類似如下的錯誤訊息 .... is not signed. ...... is not signed. ......... is not...