Question

J'ai créé une fonction qui convertira toute chaîne en caractères délimités par des tabulations.

What's new in ASP.NET 4.0

Ensuite, le titre précédent sera converti comme suit:

what-s-new-in-asp-net-4-0

J'utilise ceci pour que mes URL soient référencées. Mais je ne suis pas sûr que cela fonctionnera bien dans tous les cas ou pas. Jusqu'à présent, j'ai testé cette fonction sur environ 1 000 enregistrements de ma base de données et son fonctionnement est optimal pour tous les titres. Guyz, veuillez vérifier cette fonction et laissez-moi savoir s'il y a une possibilité d'échec de cette fonction, et s'il est possible que cette fonction échoue, merci de me préciser la fonction que je peux utiliser dans mon application.

public string SEO_makeTitle(object objTitle)
    {
        string strTitle = Convert.ToString(objTitle);

        strTitle = Regex.Replace(strTitle.Trim(), @"\W", " "); //replace special chars
        strTitle = Regex.Replace(strTitle.Trim(), @"\s{2,}", " "); //replace double space
        strTitle = strTitle.Trim().Replace(" ", "-").ToLower();

        return strTitle; //return - delimited title
    }

Merci

Était-ce utile?

La solution

Vous voudrez peut-être déterminer à quoi ressembleront les accents. Vous remplacez "spécial". caractères, mais je doute que cela inclue des lettres non-ASCII.

Je voudrais d’abord essayer de convertir les caractères accentués en caractères non accentués. Il existe un moyen relativement facile de faire cela en C # si vous connaissez le truc:

 static string RemoveAccents (string input) 
 { 
     string normalized = input.Normalize(NormalizationForm.FormKD); 
     Encoding removal = Encoding.GetEncoding 
         (Encoding.ASCII.CodePage, 
          new EncoderReplacementFallback(""), 
          new DecoderReplacementFallback("")); 
     byte[] bytes = removal.GetBytes(normalized); 
     return Encoding.ASCII.GetString(bytes); 
 }

Vous pouvez également utiliser explicitement ToLower (CultureInfo.InvariantCulture) pour éviter les problèmes si vous exécutez le code en Turquie. Ce ne serait probablement pas un problème si vous exécutez ToLower avant en exécutant RemoveAccents . Certes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top