2010-05-19 2 views
2

Я работаю над многоязычным приложением ASP.NET MVC. В url мне нужно использовать название категории. Есть ли способ, как преобразовать i.e японский текст в его безопасный эквивалент? Или использовать оригинальный текст в URL-адресе (www.example.com/ 製品/車 = www.example.com/product/car)?C#: конвертировать Юникод для использования в качестве url

EDIT: Мне нужны поисковые запросы SEO. Я знаю, как снять диакритические знаки и заменить пробелы (или другие специальные символы) на «-». Но мне интересно, как работать с иностранными языками, такими как японский, русский и т. Д.

+0

Я сомневаюсь, что существует общий способ преобразования любого языка этой планеты в US-ASCII и получения значимых результатов. – dtb

ответ

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

Это зависит от того, как вы генерируете URL-адрес, но вы можете использовать метод UrlEncode.

+1

IMHO, результат UrlEncode не является дружественным к SEO. Server.UrlEncode ("á") возвращает "% c3% a1". – Feryt

1

Если вы считаете, что гусеничное может угадать название продуктов или категории правильно приземляться на всех страницах вашего сайта, это было бы так же, как, вероятно, сделать это с номером. Используйте имя или идентификатор категории, также избавляет вас от локализации этих имен.

Смежные вопросы