C #: конвертировать Unicode для использования в качестве URL - PullRequest
2 голосов
/ 19 мая 2010

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

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

Ответы [ 3 ]

2 голосов
/ 19 мая 2010

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

1 голос
/ 19 мая 2010

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

0 голосов
/ 19 мая 2010

Вы можете 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]));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...