none
carractère spéciaux vbscript RRS feed

  • Question

  • Salut tout le monde, j'ai créé une application en vbs qui modifie le contenu d'un fichier texte. Sa marche bien sauf que la ligne que j'ai ajoutée contient des caractères spéciaux tel que "é" "è" et au lieu d'afficher ces caractères je trouve un losange qui contient un point d'unterrogation. Merci de m'avoir aider. Cordialement.
    dsf
    • Déplacé Gabriel MongeonModerator jeudi 5 mai 2011 19:28 Pas une question .Net (Origine :Développement .NET (en général))
    mercredi 4 mai 2011 09:28

Réponses

  • J'ai retrouvé deux solutions pour pouvoir écrire de l'utf-8 dans un
    fichier ANSI ou ASCII
     
    Function ToUTF8(s)
    sUTF8 = ""
    For i=1 To Len(s)
    unicode = AscW(Mid(s, i, 1))
    If unicode <= &H007F Then
    sUTF8 = sUTF8 & Chr(unicode)
    Else
    If unicode <= &H07FF Then
    sUTF8 = sUTF8 & Chr(&HC0 + unicode \ &H40)
    sUTF8 = sUTF8 & Chr(&H80 + unicode Mod &H40)
    Else
    sUTF8 = sUTF8 & Chr(&HE0 + unicode \ &H1000)
    sUTF8 = sUTF8 & Chr(&H80 + (unicode Mod &H1000) \ &H40)
    sUTF8 = sUTF8 & Chr(&H80 + (unicode Mod &H1000) Mod &H40)
    End if
    End If
    Next
    ToUTF8 = sUTF8
    End Function
     
    Et une autre qui fait appel à un composant COM, proposée à l'origine par
    Jean - JMST
     
    Function *UTF8*(quoi)
    *UTF8*=CreateObject("OlePrn.OleCvt").ToUtf8(quoi)
    End Function
     
    --
    Fred
    foleide@free.fr
     
     
    jeudi 5 mai 2011 17:30

Toutes les réponses

  •  
    Probablement un problème d'encodage.
    Essayez avec différentes valeurs du paramètre "format"
     
    --
    Fred
    foleide@free.fr
     
     
    mercredi 4 mai 2011 11:54
  • désolé jé rien compri de ta réponse, et le lien k tu ma donné ne parle pa de mon sujet.

    j'ai pa de problème pour la manipulation des fiché.jé bien la résulta voulu.sauf ke le fcihier résulta contien des carractère bizarre.

    je poste cette kestion sur pa mal de forum é je trouve pa de résulta.


    dsf
    jeudi 5 mai 2011 09:26
  •  
    > désolé jé rien compri de ta réponse, et le lien k tu ma donné ne parle
    > pa de mon sujet.
    >
    En l'absence d'indication précise, j'ai supposé que vous utilisiez
    OpenTextFile pour ouvrir le fichier.
    Veuillez préciser le code qui pose problème. Cela permettra de mieux
    cibler la réponse, voir de corriger l'erreur.
     
    > j'ai pa de problème pour la manipulation des fiché.jé bien la résulta
    > voulu.sauf ke le fcihier résulta contien des carractère bizarre.
    >
    Donc vous avez un problème de manipulation de fichier que vous ne
    comprenez pas.
     
    > je poste cette kestion sur pa mal de forum é je trouve pa de résulta.
    >
     
    Ah ? Je suis surpris que personne n'ait envie de répondre.
     
    --
    Fred
    foleide@free.fr
     
     
    jeudi 5 mai 2011 11:31

  • <Foleide. _> a écrit dans le message de news: 3cc1bdaf-8096-420b-b954-8193637edbc3@communitybridge.codeplex.com...


    je poste cette kestion sur pa mal de forum é je trouve pa de résulta.

    Ah ? Je suis surpris que personne n'ait envie de répondre.


    Fred
    foleide@free.fr

    MDR pour rester dans le style ;-)

    jeudi 5 mai 2011 15:13
  • oui j'utilise OpenTextFilec'est pas sa le problème mon script fonctionne correctement.

    il ouvre le fichier modifie son contenu.

    sauf que lors de l'affichage du texte (après le changement) les caractères spéciaux sont affichés sous une forme bizarre.


    dsf
    jeudi 5 mai 2011 16:15
  • Ce ne sont que des suppositions.
     
    1)
    Votre fichier d'origine est en UTF-8.
    Alors il n'y a pas de solution simple pour y écrire les caractères
    accentués. OpenTextFile ne gère que l'encodage par défaut du système
    (ANSI, probablement Windows 1252 sur votre système), l'unicode et l'ASCII.
    Une solution simple, si elle est possible dans le contexte, est de
    l'enregistrer en ANSI ou Unicode (avec notepad par exemple) avant d'y
    faire les insertions via vbs
     2)
    Votre fichier d'origine est en Unicode
    Utilisez la constante TriStateTrue (-1) dans OpenTextFile et le problème
    sera résolu.
     
    --
    Fred
    foleide@free.fr
     
     
    jeudi 5 mai 2011 17:20
  • J'ai retrouvé deux solutions pour pouvoir écrire de l'utf-8 dans un
    fichier ANSI ou ASCII
     
    Function ToUTF8(s)
    sUTF8 = ""
    For i=1 To Len(s)
    unicode = AscW(Mid(s, i, 1))
    If unicode <= &H007F Then
    sUTF8 = sUTF8 & Chr(unicode)
    Else
    If unicode <= &H07FF Then
    sUTF8 = sUTF8 & Chr(&HC0 + unicode \ &H40)
    sUTF8 = sUTF8 & Chr(&H80 + unicode Mod &H40)
    Else
    sUTF8 = sUTF8 & Chr(&HE0 + unicode \ &H1000)
    sUTF8 = sUTF8 & Chr(&H80 + (unicode Mod &H1000) \ &H40)
    sUTF8 = sUTF8 & Chr(&H80 + (unicode Mod &H1000) Mod &H40)
    End if
    End If
    Next
    ToUTF8 = sUTF8
    End Function
     
    Et une autre qui fait appel à un composant COM, proposée à l'origine par
    Jean - JMST
     
    Function *UTF8*(quoi)
    *UTF8*=CreateObject("OlePrn.OleCvt").ToUtf8(quoi)
    End Function
     
    --
    Fred
    foleide@free.fr
     
     
    jeudi 5 mai 2011 17:30
  • Bonjour, khaoulakoukou,

     

    Avez-vous testé la solution proposée par Foleide ? Merci pour partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.

     

     

    Cordialement,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    lundi 9 mai 2011 07:48