Frage

Ich habe eine Funktion erstellt, die begrenzt beliebige Zeichenfolge in Tab umwandeln.

What's new in ASP.NET 4.0

Dann wird es über das Eigentum an folgenden konvertieren:

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

Ich benutze diese auf meine URL SEO'd zu machen. Aber ich bin nicht sicher, dass es in allen Fällen oder nicht funktionieren wird. Bis jetzt habe ich diese Funktion auf rund 1000 Datensätze in der Datenbank und seine adaequat für alle Titel getestet. Guyz Sie bitte diese Funktion überprüfen und lassen Sie mich wissen, ob es möglich ist, diese Funktion zu scheitern, und wenn es eine Möglichkeit gibt, dass diese Funktion fehlschlagen kann, dann sagen Sie mir bitte die korrekte Funktion, die ich in meiner Anwendung verwenden kann.

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
    }

Danke

War es hilfreich?

Lösung

Sie vielleicht prüfen wollen, welche Akzente aussehen wird. Sie sind „spezielle“ Zeichen ersetzen, aber ich bezweifle, dass die Nicht-ASCII-Buchstaben enthält.

Ich würde versuchen, erste akzentuierte Zeichen ohne Akzente diejenigen zu konvertieren. Es gibt eine relativ einfache Möglichkeit, dies in C # zu tun, wenn Sie den Trick kennen:

 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); 
 }

Sie mögen vielleicht auch explizit ToLower(CultureInfo.InvariantCulture) verwenden, um Probleme zu vermeiden, wenn Sie den Code in der Türkei laufen. Dies würde wahrscheinlich kein Problem sein, wenn Sie den ToLower laufen vor laufen RemoveAccents zuzugegebenermaßen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top