2012-02-21 47 views
0

我爲客戶的主頁創建了一個動態產品列表,並且在IE8中發現了一個令人討厭的問題。在URL上替換了特殊字符

的產品網址都建有以下結構:出現

http://www.domain.com/language/category/product_name.aspx 

的問題時,我的西班牙語顯示的網站和類別包含特殊字符"ñ":IE替換字符與"%c3%b1"

以下代碼我發現URL構建正確,但是當服務器顯示結果頁面時,所有支持特殊字符的URL都被替換。

ASPX頁面具有控制:

<asp:HyperLink ID="LinkTitle" runat="server">Product Name</asp:HyperLink> 

背後類的代碼分配值到控制一個ListView的ItemDataBound事件

Dim L_LinkTit As HyperLink  
Dim Link as String 
L_LinkTit = LstView.FindControl("LinkTitle") 

Link = "/" & Session("lang") & "/" & cat & "/" & product & ".aspx" 
L_LinkTit.NavigateUrl = Link 

就如何解決這個任何想法時?

回答

0

最後我設法解決了特殊字符問題。我在網站上做了一些修改。我把它換成aspx頁面的ASP HyperLink控件與

<a id="LinkTitle" runat="server">Product Name</a> 

和後面的代碼是有點不同,現在

Dim ProdLNK As HtmlAnchor 
Dim Link as String 
ProdLNK = LstView.FindControl("LinkTitle") 

Link = "/" & Session("lang") & "/" & cat & "/" & product & ".aspx" 
ProdLNK.HRef = Link 

現在IE8處理

5

這是設計。

網址可以包含一組ASCII characters only。 ASCII以外的任何字符都是內部百分比編碼的。

現在的瀏覽器,搜索引擎等在顯示URL之前會對URL進行百分比解碼(所以它看起來更好),但在內部,UTF-8ñ將始終爲%c3%b1。 IE8顯然不這樣做,所以如果你想提供適當的URL,沒有辦法讓它們在IE8中看起來不錯。

有關背景信息,請參閱Unicode characters in URLs

+0

我使用IE8的所有URL 。但瀏覽器不會百分比解碼網址。 – 2012-02-21 11:01:38

+0

@Cpt如果我將'http:// www.iana.org/ domains/example /'''粘貼到IE8中,它會使字符保持不變。你在哪裏看URL?在地址欄中?你有一個活的例子來展示嗎? – 2012-02-21 11:03:51

+0

如果手動將百分比代碼更改爲特殊字符,則一切正常。錯誤似乎發生在列表的建設過程中。以下是一個例子:[link]http://www.motocard.com/sp/productsmoto/renthal/puños-14_199_0_95_0_0.aspx。確實,請看清單 – 2012-02-21 11:12:14