2010-05-19 84 views
2

我正在處理多語言Asp.NET MVC應用程序。在URL中,我需要使用類別名稱。 有沒有什麼辦法如何將日本文字轉換爲其安全等效的url? 或者我應該使用url中的原始文本(www.example.com/製品/車= www.example.com/product/car)?編輯: 我需要SEO firenly網址。我知道如何去除變音符號並用' - '替換空格(或其他特殊字符)。但我想知道如何處理日語,俄語等外語。C#:將Unicode轉換爲url使用

+0

我懷疑是否有一種通用的方法來將這個星球的任何語言轉換爲US-ASCII並獲得有意義的結果。 – dtb 2010-05-19 11:56:19

回答

0

你可能UrlEncode的路徑元素,但結果將是難以辨認的人眼(也可能是搜索引擎)。將這些元素翻譯成英文或將它們羅馬化聽起來似乎是一個好主意。您需要雖然詞典:

var comparer = StringComparer.Create(new CultureInfo("ja-JP"), false); 

var dict = new Dictionary<string, string>(comparer) 
{ 
    { "",  ""  }, 
    { "製品", "product" }, 
    { "車", "car"  }, 
}; 

var path = "/製品/車"; 

var translatedPath = string.Join("/", path.Split('/').Select(s => dict[s])); 
2

這取決於你如何生成的網址,但你可以使用UrlEncode方法。

+1

恕我直言,來自UrlEncode的結果不是SEO友好的。 Server.UrlEncode(「á」)返回「%c3%a1」。 – Feryt 2010-05-19 11:34:50

1

如果你認爲一個履帶能猜中產品名稱或類別的降落在你的網站的所有網頁,這將是同樣有可能與許多這樣做。使用名稱或類別ID,可以節省您將這些名稱本地化的麻煩。