2010-05-19 59 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,可以节省您将这些名称本地化的麻烦。