討論區快速選單
知識庫快速選單
討論區最近新進100則主題 網路投保旅行平安險 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
HTM 檔名 含有 "%" 為何無法瀏覽
更改我的閱讀文章字型大小
作者 : pite09(pite) 人氣指數超過10000點
[ 貼文 52 | 人氣 10490 | 評價 0 | 評價/貼文 0 | 送出評價 19 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/2 下午 02:38:29
最近有人問我這個問題 HTM 檔名 含有 "%" 為何無法瀏覽 例如 http://myServer/MyWeb/Te%st.htm
我給他的解釋為 % 可能被瀏覽器用來解讀成 Encode 後的字碼 就像用 URL Encode 一樣

請問各位 我這樣的解釋正確嗎 可以在哪裡找到這樣的資料文獻
作者 : williams(阿文) PHP優秀好手貼文超過200則
[ 貼文 267 | 人氣 4559 | 評價 1450 | 評價/貼文 5.43 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/4 下午 10:21:23
不能嗎??應該可以吧
作者 : hkln(HKLN.net) Perl卓越專家Oracle卓越專家資訊類作業求救優秀好手一般優秀好手程式設計甘苦談優秀好手C#卓越專家貼文超過2000則人氣指數超過100000點
[ 貼文 2135 | 人氣 122272 | 評價 14600 | 評價/貼文 6.84 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人pite09註記此篇回應為很有道理 2005/8/4 下午 10:42:08
>請問各位 我這樣的解釋正確嗎 可以在哪裡找到這樣的資料文獻

RFC 1738 - Uniform Resource Locators (URL)
http://www.faqs.org/rfcs/rfc1738.html

The character "%" is unsafe because it is used for encodings of other characters. ...
All unsafe characters must always be encoded within a URL.
作者 : chiuinan2(青衫)討論區板主 Visual C++ .NET卓越專家VC++一代宗師Visual Basic優秀好手資訊類作業求救卓越專家一般曠世奇才程式設計甘苦談優秀好手C++ Builder優秀好手上班族的哈拉園地優秀好手C++頂尖高手Assembly優秀好手貼文超過3000則人氣指數超過150000點
[ 貼文 3732 | 人氣 170106 | 評價 34520 | 評價/貼文 9.25 | 送出評價 125 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人pite09註記此篇回應為最佳解答 2005/8/5 上午 03:24:48
在url中, %是用來對一些特殊字元做編碼的動作, 後面接2個hex字元, 以表示該字碼. 你的例子算是一個特例, 因為%後面的st不是hex字元, 因此還可以辨別出你是要用%字元, 而不是用來編碼. 於是送出的url中"Te%st"會變成"Te%25st" (%的字碼便是25h), WebServer收到解回後, 仍然是"Te%st", 可以讀取.

你可以試試用Te%25的檔名, 送出去絕對是找不到網頁, 除非再對這個url編碼成"Te%2525", 才能正確收到.
作者 : hkln(HKLN.net) Perl卓越專家Oracle卓越專家資訊類作業求救優秀好手一般優秀好手程式設計甘苦談優秀好手C#卓越專家貼文超過2000則人氣指數超過100000點
[ 貼文 2135 | 人氣 122272 | 評價 14600 | 評價/貼文 6.84 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人pite09註記此篇回應為很有道理 2005/8/5 上午 10:19:34
>於是送出的url中'Te%st'會變成'Te%25st' (%的字碼便是25h), WebServer收到解回後, 仍然是'Te%st', 可以讀取.

我試過用 IE + Apache ,它們都不會自動把 % 改成 %25,
Apache 收到這樣的 URL ,會傳回 400 Bad Request 錯誤。

雖然Client 和 Server 都「可以」自動修正,但這是「不應該」做的。
作者 : pite09(pite) 人氣指數超過10000點
[ 貼文 52 | 人氣 10490 | 評價 0 | 評價/貼文 0 | 送出評價 19 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/5 上午 10:26:47
謝謝兩位大大的解答 正如 hkln(HKLN.net) 所言 Apache IE 均不會自動判別與轉換 在我的測試下 IIS6.0 也沒有這種功能
所以我想可能要自行處理這種特例了 例如在產生連結時 在Sever 端用程式進行轉換

Anyway 感謝 chiuinan2(青衫)與hkln(HKLN.net) 的熱情解答
 板主 : 小朱
 > IIS Server - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - IIS Server - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
IIS Server
1 小朱 310 
2 David 70 
3 班班西 50 
4 阿嘉 50 
5 Daniel 40 
6 玩家 40 
7 風月 40 
8 Author.Pan 40 
9 HKLN.net 40 
10 cary2580 40 
IIS Server
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875