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 Discussion :

Problème de charset avec un script ASP


Sujet :

ASP

  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Par défaut Problème de charset avec un script ASP
    Bonjour,

    je procède actuellement à la refonte d'un site internet conçu à l'origine avec le charset windows-1252 et qui doit aujourd'hui fonctionner (entre autres modifications) en UTF-8.

    Ce site comporte notamment un script ASP qui génère des pages d'après une base de données SQL, avec des balises de type : <§Prix§> qui insèrent le contenu du champ spécifié dans la page.

    Or, le passage à l'UTF-8 rend ce script inopérant puisqu'il inscrit "en dur" la balise sans la remplacer par le résultat de la requête.

    Si quelqu'un connaissait une syntaxe susceptible de remplacer les balises incriminées pour rétablir la fonctionnalité du script, je lui en serais bien reconnaissant....

    Merci à touspour votre attention,

    torobravo

  2. #2
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Par défaut
    Bon, j'ai réglé une partie de la question mais le problème persiste sous une autre forme.

    Il suffisait de remplacer la balise dynamique <% par un autre symbole pour que les champs s'inscrivent dynamiquement dans la page. Le problème initial est donc réglé.

    Toujours est-il que le texte des champs s'inscrit en charset windows-1252 et la page étant conçue en UTF-8, les caractères accentués ne fonctionnent pas. Ceci est d'autant plus gênant que la page contient d'autre éléments dynamiques qui, eux, ne s'affichent correctement qu'en UTF-8...

    Quelqu'un aurait-il une suggestion ? Merci

    Torobravo

  3. #3
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Tu as un petit exemple?
    Sinon, la fonction server.htmlencode te permet de convertir des caractères speciaux.
    Ensuite, il faut modifier l'entete de la page, mais cela devrait suffire.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  4. #4
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Par défaut
    Salut ! et merci pour ta réponse.

    Voici le script qui génère la page:

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
     
    <%
     
    server.scriptTimeout = 5*60
     
    Set FSO = Server.CreateObject("Scripting.FileSystemObject")
     
    ' Nettoyage du dossier
    set fc = FSO.GetFolder(server.mapPath(".")).files
    for each f in fc
    	if f.name <> "default.asp" and f.name <> "generateur.asp" and f.name <> "modele.asp" then
    		set fd = FSO.getFile(server.mapPath(".")&"\"&f.name)
    		fd.Delete
    	end if
    next
     
    if request.queryString("act")="clean" then response.redirect "default.asp"
     
    ' Lecture du modèle
    set inF = FSO.OpenTextFile(server.mapPath("modele.asp"),1,false)
    dy_modele = inF.readAll
    inF.close
     
    ' CONNEXION
    Set dy_Conn = Server.CreateObject("ADODB.Connection")
    dy_Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../45260.mdb")
     
    Set dy_RS = server.createobject("ADODB.Recordset")
    dy_SQL= "SELECT * FROM Livre WHERE Web1=-1"
     
    dy_RS.Open dy_SQL,dy_Conn , 3, 3
     
    Function clean(txt)
    	dim regEx
    	Set regEx = New RegExp
    	regEx.Global = True
    	regEx.Pattern = "[àâ]"
    	txt = regEx.REPLACE(txt,"a")
    	regEx.Pattern = "[éèêë]"
    	txt = regEx.REPLACE(txt,"e")
    	regEx.Pattern = "[îï]"
    	txt = regEx.REPLACE(txt,"i")
    	regEx.Pattern = "[ôö]"
    	txt = regEx.REPLACE(txt,"o")
    	regEx.Pattern = "[ùûü]"
    	txt = regEx.REPLACE(txt,"u")
    	txt = replace(txt,"ç","c")
    	regEx.Pattern = "[^a-zA-Z0-9 _-]+"
    	txt = regEx.replace(txt,"")
    	clean = replace(txt," ","_")
    end function
     
    dy_fld = Array("SusTitre","Auteur","Titre","Adresse","Collation","Reliure","IDLiv","Prix","Commentaire","RefBiblio","Commentaire_en","RefBiblio_en","Commentaire_es","RefBiblio_es","Commentaire_ca","RefBiblio_ca")
    while not dy_RS.eof
    	dy_page = dy_modele
    	for i = 0 to 15
    		if isnull(dy_RS(dy_fld(i))) then
    			dy_page = replace(dy_page,"[\"&dy_fld(i)&"/]","")
    		elseif dy_fld(i)="Prix" then
    			if cInt(dy_RS(dy_fld(i)))>0 then
    				dy_page = replace(dy_page,"[\"&dy_fld(i)&"/]",dy_RS(dy_fld(i)))
    			else
    				dy_page = replace(dy_page,"[\"&dy_fld(i)&"/]","Prix sur demande")
    			end if
    		else
    			dy_page = replace(dy_page,"[\"&dy_fld(i)&"/]",dy_RS(dy_fld(i)))
    		end if
    	next
    	' nom de fichier
    	dy_nf = ""
    	if not isnull(dy_RS("Auteur")) then dy_nf = dy_RS("Auteur")
    	if not isnull(dy_RS("Titre")) then
    		if dy_nf <>"" then dy_nf = dy_nf & " - "
    		dy_nf = dy_nf & dy_RS("Titre")
    	end if
    	dy_nf = clean(left(dy_nf,100))
    	dy_page = replace(dy_page,"[\Title/]",replace(left(dy_nf,50),"_"," "))
    	dy_nf = dy_nf & "-" & dy_RS("IDLiv") & ".asp"
    	dy_nf = replace(dy_nf,"_-","-")
    	if left(dy_nf,1)="_" then dy_nf=mid(dy_nf,2)
    	' Ecriture
    	set inF = FSO.OpenTextFile(server.mapPath(dy_nf),2,true)
    	inF.write dy_page
    	inF.close
    	dy_RS.moveNext
    wend
    dy_RS.close
     
    ' Déconnexion
    dy_Conn.close : set dy_Conn=nothing
     
    response.redirect "default.asp"
    %>
    Il faut dire qu'il est déjà ancien (2003)...

    Comment utilise-t-on cette fonction server.htmlencode ?

    Je serais très ravi si une solution pouvait être trouvée. A bientôt.

    torobravo

  5. #5
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Un petit coup de
    "Winter is coming" (ma nouvelle page d'accueil)

  6. #6
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Par défaut
    Bon, ben je dois être plutôt mauvais mais le "petit coup de Google" ne m'a pas permis de savoir exactement quoi faire... Je dirai même que cela a plutôt augmenté la confusion.

    Je sais que Noël est déjà loin, mais si une bonne âme charitable passe par ici... et connaît les finesses du charset en asp...

  7. #7
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    http://www.w3schools.com/asp/met_htmlencode.asp

    Un très bon site à garder dans les signets.
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. Problème de droits avec un script
    Par Marin d'Eau Douce dans le forum VBScript
    Réponses: 5
    Dernier message: 07/10/2010, 16h24
  2. Problème de charset avec un include
    Par mims1664 dans le forum Langage
    Réponses: 3
    Dernier message: 17/11/2009, 23h20
  3. Problème de charset avec traduction Google
    Par Booster2ooo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/02/2009, 23h10
  4. Problème de charset avec le mod_proxy_html
    Par tipou75 dans le forum Apache
    Réponses: 11
    Dernier message: 27/02/2008, 16h19
  5. Réponses: 7
    Dernier message: 26/04/2007, 13h21

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