Beaucoup de webmasters se sont certainement déjà posée sur cette question et pourtant je n'ai trouvé encore aucune solution sur le WEB, peut-être que vous allez pouvoir m'aider. Je l'espère.
Un sitemap est généré automatiquement par un script ASP à partir d'une base de donnée.
Le principe est décrire dans un fichier, je vous laisse ici un bout de code succint pour que vous puissiez peut-être voir une erreur ?
Set fso = CreateObject("Scripting.FileSystemObject")
chemin_fichier = "D:\www\xxx.com\www\sitemap.XML"
If FSO.FileExists(chemin_fichier) Then
Set MyFile = fso.GetFile(chemin_fichier)
MyFile.Delete
end if
Set f1 = fso.OpenTextFile(chemin_fichier, 8, TRUE,-1)
f1.writeline header
f1.writeline institu
f1.writeline footer
f1.close
set f1=nothing
set fso=nothing
Le fichier sitemap.xml est bien écrit, sans erreur SQL ou autre... Seulement Google ne l'accepte pas car il n'est apparemment pas écrit en UTF-8
La seule solution trouvée jusqu'a aujourd'hui et de réouvrir ce fichier avec le bloc note est de l'encoder en UTF-8 après ça tout est ok.
Je pensais qu'il s'agissait d'un problème d'accent, de ce fait un script permet de les supprimer mais ça n'est surement pas suffisant.
Function noaccent(txt) ' Vire les accents
dim temp,regEx
temp = txt
Set regEx = New RegExp' crée un objet RegExp
regEx.IgnoreCase = True' Casse ignorée
regEx.Global = True' Recherche sur toute la chaîne
regEx.Pattern = "[àâäá]"' Chars cherchés entre [ et ]
temp = regEx.REPLACE(temp,"a")
regEx.Pattern = "[éèêë]"
temp = regEx.REPLACE(temp,"e")
regEx.Pattern = "[îïí]"
temp = regEx.REPLACE(temp,"i")
regEx.Pattern = "[ç]"
temp = regEx.REPLACE(temp,"c")
regEx.Pattern = "[ôó]"
temp = regEx.REPLACE(temp,"o")
regEx.Pattern = "[ü]"
temp = regEx.REPLACE(temp,"u")
regEx.Pattern = "[ñ]"
temp = regEx.REPLACE(temp,"n")
regEx.Pattern = "[' /°']"
temp = regEx.REPLACE(temp,"-")
regEx.Pattern = "[(),#%?;.:!²&<>_"&chr(34)&"]"
temp = regEx.REPLACE(temp,"")
noaccent=temp
end function
Y a-t-il peut-être en ASP une autre manière d'écrire dans un fichier afin de lui dire de le convertir automatiquement en UTF-8 ?