KB-IE7 Refuses Unicode UrlEncoded Page Filename

<iframe id=dispZone width='100%' height='100%' src='/MyApp/%u4E0A%u4E0B.htm'>

發現以上的寫法在IE6下OK,但IE7中IFrame不會顯示內容,呈現about:blank的狀態。如果試著在IE7的地址列敲入http://myweb/MyApp/%u4E0A%u4E0B.htm,會得到一個對話框:

Windows cannot find 'http://myserver/MyApp/%u4E0A%u4E0B.htm'. Check the spelling and try again.

用Fiddler觀察顯示,IE7完全忽略掉這個URL,沒有發出任何Request到網路上,我猜這是IE7為了防止惡意URL偽裝的安全機制(URL Spoof Prevention?),所以我做了以下的測試。

<html><body>
<li>Link 1 <a href="瞎.htm">瞎.htm</a>
<li>Link 2<a href="%u778E.htm">%u778E.htm</a>
<li>Link 3<a href="%bdM.htm">%bdM.htm</a>
<li>Link 4<a href="%bdM.htm?p=%u778E">%bdM.htm?p=%u778E</a>
</body></html>

在這個測試中,Link 1, 3, 4 Test OK。Link 2則呈現完全無法點選的狀態,看來是被徹底地封鎖了,但像Link 4的UrlEncode是放在Query String中而非檔案名上,則可以過關。

依據以上測試結果,我的結論是:

  • IE7對於檔案名出現Unicode UrlEncode語法的URL一律殺無赦,但用的若是Big5 UrlEncode倒會放行。
  • Query String中使用Unicode UrlEncode則不會造成問題。

如何避免這個困擾呢? 我的想法是,網頁檔名一律用英文命名吧!

總之,中文檔名在網站、瀏覽器互動時有不少麻煩事(例如這個),而我也想不出非要取中文檔名不可的理由。至於連這種時候都一定要堅持愛台灣到底的朋友,自個兒多擔待點吧!

歡迎推文分享:
Published 02 August 2007 01:29 PM 由 Jeffrey
Filed under: , ,
Views: 11,074



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<August 2007>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication