[問題] 檔案內容的編碼

看板Linux作者 (yshihyu)時間14年前 (2011/11/11 01:01), 編輯推噓6(6010)
留言16則, 3人參與, 最新討論串1/1
1. file Sample5.java ./Sample5.java: ISO-8859-1 Java program text, with CRLF, NEL line terminators 上面用file指令可以得到Sample5.java 檔案屬性,那我是想只要編碼訊息部分就好 還有個疑問是 file 指令找到編碼是指檔案名稱的編碼還是檔案內容編碼 因為我用 recode 工具轉碼 ISO-8859-1 轉 UTF-8 變成亂碼 但我用 BIG5 轉成 UTF-8 出來是OK, 所以我檔案內容編碼應該是BIG5 而ISO-8859-1是 檔案名稱編碼嗎? 2. 下面是我先用find 找出每個.java檔案路徑, 那我先判斷是每個檔案原本的編碼格式,之再做轉碼 那怎麼取得檔案屬性編碼字串進行比對選擇不同的處理 #!/bin/bash find . -type f -iname '*.java' | while read path ; do done 謝謝 -- ※ 編輯: yshihyu 來自: 112.104.143.63 (11/11 02:07)

11/11 02:15, , 1F
編碼是有模糊地帶的 要看你要轉的有哪幾種再來決定
11/11 02:15, 1F

11/11 02:19, , 2F
我就是判斷檔案內容編碼是big5 or GB2312 就轉成UTF-8
11/11 02:19, 2F

11/11 02:21, , 3F
如果vim的fencs有設定好的話(每個檔案打開都正常)
11/11 02:21, 3F

11/11 02:21, , 4F
可以試試這個http://tinyurl.com/4vnxvya
11/11 02:21, 4F

11/11 02:22, , 5F
我現在不是在vim 顯示上問題~就是我編譯器判讀是utf-8
11/11 02:22, 5F

11/11 02:23, , 6F
程式碼都要utf-8..
11/11 02:23, 6F

11/11 02:24, , 7F
因為vim可以用set fenc來轉檔案編碼
11/11 02:24, 7F

11/11 02:24, , 8F
恩恩~但是我有很多檔案~ 這邊我都用vim 轉換就麻煩
11/11 02:24, 8F

11/11 03:17, , 9F
結果直接enca -x utf8 ...就搞定了
11/11 03:17, 9F

11/11 06:19, , 10F
在沒有更多資訊的情況下,BIG5會被認為是ISO-8859-1
11/11 06:19, 10F

11/11 06:20, , 11F
這是正常的,瀏覽器因為有OS國別/語系資訊,知道使用者用
11/11 06:20, 11F

11/11 06:21, , 12F
中文環境,所以可以先判斷檔案是否符合Big5?不符才判定為
11/11 06:21, 12F

11/11 06:21, , 13F
ISO-8859-1
11/11 06:21, 13F

11/11 06:22, , 14F
以前在DOS系統下,沒跑倚天中文系統時,Big5檔案type出來
11/11 06:22, 14F

11/11 06:22, , 15F
就像亂碼,而這些亂碼完全符合ISO-8859-1
11/11 06:22, 15F

11/11 19:29, , 16F
看起來是byte值0~255都符合iso-8859-1
11/11 19:29, 16F
文章代碼(AID): #1El0DpHU (Linux)