2014年12月7日 星期日

程式筆記:Windows Explorer編碼




最近被Mail的編碼問題搞得很不爽,同樣的程式碼有些人收信正常,有些人就會亂碼。

雖然猜測可以更改收信軟體的設定來改善,但是你總不能要求User一個個的更改設定。

這就算了,此先按下不表。

目前有遇到一個問題就是:

User收到了一個Mail附件為zip壓縮檔,直擊兩點直接開啟時,卻只發現一個空資料夾,沒有任何檔案。

但是另存新檔使用7zip 或 Winrar 又可以正常開啟。


這個問題困擾頗久,最後終於在引入Library的Q&A裡找到答案。


照文件來看,Windows Explorer似乎是不支援UTF-8的,這實在讓人有點震驚。

實際測試過以下條件會造成看不見壓縮檔裡的文件
(使用Library Dotnetzip產制壓縮檔)
  1. 作業系統在Windows7以下(包含Win7)
  2. 此為推測,實際測試過Win8 & Win7,Win8是可以正常開啟的。
  3. 壓縮檔編碼為UTF-8
  4. 開啟軟體為Windows Explorer

特別解釋第二點
目前一共實驗兩種寫法(VB.NET):


結果如下:
上方為採用Big5寫法
下方為採用UTF-8寫法

結論:
各位大德一定要小心編碼問題啊~

額外參考資料:
If someone blathers on about how Windows supports Unicode....
Stackoverflow - How to recursively zip utf-8 files and folders from a batch file?



0 comments:

張貼留言