標籤:
對於日語的編碼
windows : Shift-JIS
Linux : 2.4核心使用EUC編碼,2.6核心中使用UTF8編碼
檢查檔案編碼 nkf -g filename
通常處理字元編碼都使用iconv這個命令,但是iconv命令只能用來處理檔案名稱,但對於常值內容的編碼就無法處理了,
要想對常值內容的字元編碼進行轉換,就要用到nkf了
-j : 轉換為 JIS 編碼(ISO-2022-JP),預設-e : 轉換為 EUC 編碼-s : 轉換為 Shift-JIS 編碼-w : 轉換為 UTF-8 編碼(無BOM)-Lu : 轉換為 unix 換行格式(LF)-Lw : 轉換為 windows 換行格式(CRLF)-Lm : 轉換為 macintosh 換行格式(CR)-g(--guess) : 自動判斷編碼並顯示--version : 顯示版本--help : 顯示協助
linux中轉換成window : nkf -sxLw nkf -swLw
window轉換成linux : nkf -wxLu
Linux中使用nkf命令對日文編碼進行轉換
對日文字元編碼的處理,Windows於Linux使用不同的字元編碼,Windows中使用的日文字元編碼為Shift-JIS,Linux中2.4核心使用EUC編碼,2.6核心中使用UTF8編碼,為瞭解決這個問題,可以使用nkf這個命令。通常處理字元編碼都使用iconv這個命令,但是iconv命令只能用來處理檔案名稱,但對於常值內容的編碼就無法處理了,要想對常值內容的字元編碼進行轉換,就要用到nkf了。
首先下載安裝,我使用的是Ubuntu8.10,用apt可以很方便的進行安裝。如果使用源碼進行安裝可自行尋找相關資料。
安裝好了就可以開始使用了。這裡簡單介紹一下nkf的使用。nkf命令使用的時候會將指定常值內容按照參數所設定的編碼格式列印輸出到螢幕上,並不會對原來的文本進行改變,要產生新的編碼格式的文本,可以使用管道命令將結果重新導向到其他檔案中。先介紹幾個基本參數:j,s,e,w,這幾個參數分別為JIS,Shift-JIS,EUC,UTF編碼,如果要使用UTF8就用w8參數,要使用UTF16就用w16參數,注意這幾個字母是小寫,另外還有四個大寫的參數,J,S,E,W與之前對應相同的字元編碼格式,大寫於小寫區別在於,小寫字母表示輸出的編碼,大寫字母表示假定輸入的字元編碼,這裡用了個“假定”這個詞,man文檔中是這麼說的,我猜想這個意思是說,假如有一個Shift-JIS編碼的檔案需要轉換成UTF8格式,如果指定的參數為E,那麼就把這個檔案的字元編碼當作EUC來處理了。 協助文檔中寫道可以指定輸入檔案和輸出檔案,不過根據我自己的實驗好像不能將結果產生為輸出檔案,只能 列印到螢幕上,所以只能使用管道命令,重新導向到其他檔案中。例如我現在要將一個內容為Shift-JIS編碼的檔案轉換成UTF8格式,就可以使用如下命令,這也是我們經常用到的,。
$nkf -w myfile.txt >> test
這個命令的意思就是把檔案myfile.txt檔案文本的內容轉換成utf8的編碼然後輸出到檔案test中,這個時候我們再瀏覽一下檔案test檔案的內容應該就能夠正常顯示了。
nkf還有一個比較有趣的參數,就是可以進行平假名和片假名之間的轉換。那就是-h參數,注意,很多命令的協助檔命令的參數也是-h,nkf的協助命令為--help,-h1參數為片假名到平假名之間的轉換,-h2為平假名到片假名之間的轉換,-h3為雙向轉換,前兩個參數還好理解,對於第三個雙向轉換,我沒有做過實際驗證,不做其他設想了。
這裡介紹簡單的nkf命令的使用方法,具體的用法請各位參考一下man文檔或者協助命令吧,記得,nkf的協助命令是--help,不是-h。
來自為知筆記(Wiz)
linux nkf 日文編碼轉換命令[轉載]