作者chweng ()
看板EZsoft
標題Re: [心得] Notepad2 UTF-8檔案被誤判為ANSI
時間Fri Jan 16 19:56:36 2009
※ 引述《xflies ()》之銘言:
: http://www.flos-freeware.ch/doc/notepad2-FAQs.html#q11
: 這是官網FAQ裡的解答
: 上面到要避免 UTF-8 被誤判為 ANSI 的話,
: 必須將檔案存成 UTF-8 signature。
事實上,這是不被建議的做法。
他所謂的 UTF-8 signature 指的應該是 BOM,這會造成一些問題..
請見維基百科的說明:
http://zh.wikipedia.org/w/index.php?title=
%E4%BD%8D%E5%85%83%E7%B5%84%E9%A0%86%E5%BA%8F%E8%A8%98%E8%99%9F&variant=zh-tw
(縮址:
http://tinyurl.com/7orbob)
即便你也許不是用在他所說的場合,但是我覺得養成好習慣是比較重要的。
: 在試了好多種方法後,我終於找到解法。
: 就是用 Windows XP 內建的記事本打開檔案,
: 記事本不會誤判檔案的編碼(至少我還沒看過),
: 然後另存新檔並將編碼選為 UTF-8 (記事本的 UTF-8 其實是 UTF-8 signature),
記事本存的 UTF-8 文件都帶有 BOM,如果要存成帶 BOM 的文件,這的確是個方法沒錯。
不過,這邊再同場加映一下維基上關於 UTF-8 的條目,裡面提到了這並不是標準的做法。
http://zh.wikipedia.org/w/index.php?title=UTF-8
: 然後 Notepad2 就可以正常地以 UTF-8 打開檔案了。
: 另外,我發現我這邊被誤判的檔案多半是因為是 Unix 的換行方式,
: 所以也可以用 Notepad2 在 ANSI 模式下轉換換行設定為 Windows 式,
: 然後再打開就正常了,
事實上 UTF-8 的編碼方式具有很強烈的特徵性,如果按照正確的規則去判斷,
一旦文件被判定為 UTF-8 編碼,則誤判的可能性其實極低。
所以我覺得其實應該要建議軟體作者將這套判斷機制寫到程式裡面去才對。
至少我慣用的 EmEditor,在這方面的判斷做得還不錯。
其實我覺得寫這 FAQ 的人,對於 UTF-8 的特性似乎不是非常瞭解。
一份純英文加數字、不帶任何特殊符號的文件,其實他的 ANSI 編碼跟 UTF-8 編碼
是長得完全一樣的。要讀這樣的檔案,並不存在判定編碼的問題,
因為不管你判定成 ANSI 或是 UTF-8,都不會影響其結果。
這就是 UTF-8 編碼神奇的地方,他這樣的設計,可以讓早期一大堆純英文的文件
不經任何轉換,直接套用到需要 UTF-8 編碼的場合上。
至於為什麼會這麼厲害,可以看一下維基條目上的講古 :)
: 這個狀況只要用Notepad2本身就解決了(而且記事本不能調換行設定)。
: 不知道有沒有可以直接用特定 Encoding 來開啟檔案的軟體?
你給的那段官網 FAQ 不也提到了:
you could set UTF-8 as the default encoding (File, Encoding, Default),
--
突然發現我整個離題...-_-
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.165.39.115
→ klinecache:不過 notepad2 很快很強大很好用… 01/16 19:57
推 xflies:推一下,養成遵循標準的習慣很好 01/17 00:03