2010-07-13 51 views
0

文件編碼有多重要? Notepad ++的默認值是ANSI,但使用UTF-8會更好嗎?如果不使用其中一種,可能會出現什麼問題?文件編碼有多重要?

+5

這取決於你想要在文件中存儲什麼字符。 – ChrisF 2010-07-13 19:53:01

+0

以及要讀取文件的內容。 – 2010-07-13 19:53:26

+1

請更精確地說明您的問題。 – 2010-07-13 19:53:59

回答

2

如果您在使用不同的默認編碼的系統之間共享文件,那麼Unicode編碼就是要走的路。如果你不打算這樣做,或者只使用ASCII字符集,並且不會使用編碼,無論出於何種原因,都要修改這些(我現在無法想到,但你永遠不知道...),你並不需要它。另一方面,這是當你不使用Unicode編碼來處理系統中具有非ASCII字符的文件時發生的一種情況,該系統使用與創建文件的編碼不同的編碼:http://en.wikipedia.org/wiki/Mojibake

0

這是非常重要的,因爲你的whatevertool將顯示錯誤的字符/無論如果你使用錯誤的編碼。嘗試在記事本中加載一個Kyrillic文件而不使用UTF-8左右,並看到很多「?」接下來。 :)

3

是的,如果大家總是對所有文檔都使用UTF-8,那會更好。

不幸的是,他們沒有,主要是因爲Windows文本編輯器(和許多其他Win工具)默認爲「ANSI」。這是一個令人誤解的名字,因爲它與ANSI X3.4(又名ASCII)或任何其他ANSI標準無關,但實際上是指當前Windows機器的系統默認代碼頁。該默認代碼頁可以在計算機之間或在同一臺計算機上更改,此時「ANSI」中具有非ASCII字符(如重音字母)的所有文本文件都將中斷。

所以你一定要用UTF-8創建新文件,但是你必須意識到其他人給你的文本文件很可能是在糟糕的國家特定的代碼頁雜亂的集合。

微軟的立場是希望Unicode支持的用戶應該使用UTF-16LE文件;它甚至會誤導性地在保存框編碼菜單中簡單地將該編碼稱爲「Unicode」。 MS採用了這種方法,因爲在Unicode的早期階段,人們相信這將是最乾淨的方式。從那時開始:

  • Unicode擴展到16位以上的代碼點,消除了UTF-16的優點,即每個代碼單元都是代碼點;

  • UTF-8被髮明出來,其優點在於它覆蓋了所有的Unicode,它與7位ASCII(UTF-16不是零字節)完全兼容,並且爲此因爲它通常也更加緊湊。

世界上大多數其他地區(蘋果機,Linux在普通網頁)的,因此,已經轉移到UTF-8的標準編碼,用於文件存儲或網絡的目的避開UTF-16。不幸的是,Windows仍然停留在早期的Windows NT時代,它已經迴歸到了不相容代碼頁的陳舊和無用的選擇。近期內沒有發生這種變化的跡象。