IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Remplacement de caractère


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Remplacement de caractère
    Bonjour,

    J'ai à nouveau un problème avec un accent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
            Dim Nom As String
            Nom = Request.QueryString("libelle")
            Nom = Nom.Replace("/ ", "")
            Nom = Nom.Replace("""", "")
            'remplace les espaces dans le nom par des vircules
            Dim MotCle As String = Nom.Replace(" ", ", ")
     
     
            'Crée un tag meta avec le nom "keywords" et le contenu content + MotCle
            Dim keywords As New HtmlMeta()
            keywords.HttpEquiv = "keywords"
            keywords.Name = "keywords"
            keywords.Content = ("keywords, " + MotCle).ToString()
            Header.Controls.Add(keywords)
    Je récupère le libellé qui est affiché en paramètre dans l'url cependant le caractère "É" est affiché "É" ce qui quand j'affiche les mots clés, m'écrit:

    <meta http-equiv="keywords" name="keywords" content="Keywords, M">

    quand le libellé est en fait MÉMOIRE. Tout ce qui est après le É n'est pas affiché.

    Je vous remercie par avance,

    Artas

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Tu peux utiliser cette function pour supprimer tous les accents et les remplacer par leur caractere de base (exemple, É devient E) :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Shared Function RemoveDiacritics(text As String) As String
    	If String.IsNullOrWhiteSpace(text) Then
    		Return text
    	End If
     
    	text = text.Normalize(NormalizationForm.FormD)
    	Dim chars = text.Where(Function(c) CharUnicodeInfo.GetUnicodeCategory(c) <> UnicodeCategory.NonSpacingMark).ToArray()
    	Return New String(chars).Normalize(NormalizationForm.FormC)
    End Function
    Ensuite au lieu de faire :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    keywords.Content = ("keywords, " + MotCle.ToString()
    Tu fais ceci :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    keywords.Content = ("keywords, " + RemoveDiacritics(MotCle)).ToString()
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre actif
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 127
    Points : 288
    Points
    288
    Par défaut
    Un UrlDecode pourrait peut-être faire l'affaire :
    https://msdn.microsoft.com/en-us/lib...urldecode.aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim decodedUrl As String = HttpUtility.UrlDecode(encodedUrl)

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Merci pour vos réponses cependant je ne sais pas si il est possible d'utiliser la clause where de cette manière car je reçois un message d'erreur:

    Erreur 1 La résolution de surcharge a échoué, car aucun 'Where' accessible ne peut être appelé avec ces arguments*:
    Méthode d'extension 'Public Function Where(predicate As System.Func(Of Char, Integer, Boolean)) As System.Collections.Generic.IEnumerable(Of Char)' définie dans 'System.Linq.Enumerable'*: La fonction imbriquée n'a pas une signature compatible avec le délégué 'System.Func(Of Char, Integer, Boolean)'.
    Méthode d'extension 'Public Function Where(predicate As System.Func(Of Char, Boolean)) As System.Collections.Generic.IEnumerable(Of Char)' définie dans 'System.Linq.Enumerable'*: 'CharUnicodeInfo' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.
    Méthode d'extension 'Public Function Where(predicate As System.Func(Of Char, Boolean)) As System.Collections.Generic.IEnumerable(Of Char)' définie dans 'System.Linq.Enumerable'*: 'UnicodeCategory' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.
    pour la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim chars = text.Where(Function(c) CharUnicodeInfo.GetUnicodeCategory(c) <> UnicodeCategory.NonSpacingMark).ToArray()
    Il se peut fortement que ce soit mon erreur puis que je suis complètement débutant.

Discussions similaires

  1. Remplacement du caractère ?
    Par Mvu dans le forum ASP
    Réponses: 9
    Dernier message: 06/01/2005, 18h11
  2. Réponses: 11
    Dernier message: 01/12/2004, 19h09
  3. [CR] Chercher et remplacer un caractère dans 1 chaine
    Par franck.cvitrans dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 29/09/2004, 16h42
  4. Fonction permettant de remplacer des caractères
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 06/09/2004, 15h48
  5. Remplacer un caractère
    Par Mvu dans le forum ASP
    Réponses: 5
    Dernier message: 20/07/2004, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo