Conversion caractères utf-8 vers français

Soyez le premier à donner votre avis sur cette source.

Snippet vu 36 887 fois - Téléchargée 19 fois

Contenu du snippet

En ASP (pas en ASP .net), je n'ai pas trouvé de fonction de transformation des caractères UTF-8 en ISO français.
Je me suis donc créé une fonction basique de remplacement.
Je la mets là car elle peut reservir, soit à moi, soit à d'autres.
Si certains veulent la compléter, n'hésitez pas !

Source / Exemple :


Function Utf8Iso(vsStr)

Dim strTemp

	strTemp = vsStr
	
	strTemp = Replace(strTemp,"ç","ç")
	strTemp = Replace(strTemp,"ä§","ç")
	strTemp = Replace(strTemp,"é","é")
	strTemp = Replace(strTemp,"ä©","é")
	strTemp = Replace(strTemp,"è","è")
	strTemp = Replace(strTemp,"ä¨","è")
	strTemp = Replace(strTemp,"ê","ê")
	strTemp = Replace(strTemp,"äª","ê")
	strTemp = Replace(strTemp,"ë","ë")	
	strTemp = Replace(strTemp,"ä«","ë")	
	strTemp = Replace(strTemp,"Ã?","Ê")
	strTemp = Replace(strTemp,"ä?","Ê")
	strTemp = Replace(strTemp,"Ã?","Ë")
	strTemp = Replace(strTemp,"ä?","Ë")
	strTemp = Replace(strTemp,"î","î")
	strTemp = Replace(strTemp,"ä®","î")
	strTemp = Replace(strTemp,"ï","ï")
	strTemp = Replace(strTemp,"ä¯","ï")
	strTemp = Replace(strTemp,"ì","ì")
	strTemp = Replace(strTemp,"Ã?","Î")
	strTemp = Replace(strTemp,"ä?","Î")
	strTemp = Replace(strTemp,"ò","ò")	
	strTemp = Replace(strTemp,"ä²","ò")	
	strTemp = Replace(strTemp,"ô","ô")
	strTemp = Replace(strTemp,"ä´","ô")
	strTemp = Replace(strTemp,"ö","ö")	
	strTemp = Replace(strTemp,"ä¶","ö")	
	strTemp = Replace(strTemp,"õ","õ")
	strTemp = Replace(strTemp,"ó","ó")
	strTemp = Replace(strTemp,"ø","ø")
	strTemp = Replace(strTemp,"äµ","õ")
	strTemp = Replace(strTemp,"ä³","ó")
	strTemp = Replace(strTemp,"ä¸","ø")
	strTemp = Replace(strTemp,"Ã?","Ô")
	strTemp = Replace(strTemp,"ä?","Ô")
	strTemp = Replace(strTemp,"Ã?","Ö")	
	strTemp = Replace(strTemp,"ä?","Ö")	
	strTemp = Replace(strTemp,"Ã ","à")
	strTemp = Replace(strTemp,"ä ","à")
	strTemp = Replace(strTemp,"â","â")
	strTemp = Replace(strTemp,"ä¢","â")
	strTemp = Replace(strTemp,"ä","ä")	
	strTemp = Replace(strTemp,"ä¤","ä")
	strTemp = Replace(strTemp,"Ã¥","å")
	strTemp = Replace(strTemp,"ä¥","å")
	strTemp = Replace(strTemp,"Ã?","Â")
	strTemp = Replace(strTemp,"ä?","Â")
	strTemp = Replace(strTemp,"Ã?","Ä")	
	strTemp = Replace(strTemp,"ä?","Ä")	
	strTemp = Replace(strTemp,"ù","u")	
	strTemp = Replace(strTemp,"û","û")
	strTemp = Replace(strTemp,"ü","ü")
	strTemp = Replace(strTemp,"ä¼","ü")
	strTemp = Replace(strTemp,"Ã?","Û")
	strTemp = Replace(strTemp,"Ã?","Ü")
	strTemp = Replace(strTemp,"ä¹","u")	
	strTemp = Replace(strTemp,"ä»","û")
	strTemp = Replace(strTemp,"ä¼","ü")
	strTemp = Replace(strTemp,"ä¼","ü")
	strTemp = Replace(strTemp,"ä?","Û")
	strTemp = Replace(strTemp,"ä?","Ü")
	strTemp = Replace(strTemp,"ò","ñ")
	strTemp = Replace(strTemp,"ñ","ñ")
	
	Utf8Iso = strTemp

End Function

A voir également

Ajouter un commentaire

Commentaires

cs_Keneyda
Messages postés
41
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
27 mars 2009
-
Sinon plus simple au cas ou pour d'autre

<%response.Charset="ISO-8859-1"%>
angedead
Messages postés
9
Date d'inscription
vendredi 20 août 2004
Statut
Membre
Dernière intervention
10 avril 2008
-
Merci pour ce code

Peut aller de pair avec la fonction javascript pour faire de l'Ajax :

pour encoder en UTF8 le contenu d'un textAREA par exemple et l'envoyer vers une page aspx en ajax.

<script>

function encode (string) {

string = string.replace(/\r\n/g,"\n");

var utftext = "";

for (var n = 0; n < string.length; n++) {

var c = string.charCodeAt(n);

if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}

}

return utftext;
}

</script>
pifou25
Messages postés
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014
-
Moi je suis bluffé par le temps qu'on perd à cause de ces betises de transcodifications incompréhensibles qui dérangent tout le monde!

Voila, le serveur tente de trouver automatiquement le charset, ensuite en ASP on peut le définir manuellement (response.charset) mais il faut aussi enregistrer le fichier au même format qu'on le définit (la plupart des éditeurs ont les options pour cela) et quoi qu'il en soit je tombe encore sur des cas ou ça fonctionne pas ou mal!
Me trouve obligé d'utiliser cette fonction (que je trouve digne de la préhistoire de l'informatique mais pourtant!) et ben, un grand merci à Phimselfbis, je note le code pour ton commentaire ^^
cs_EricDD
Messages postés
16
Date d'inscription
vendredi 20 mai 2005
Statut
Membre
Dernière intervention
3 juillet 2008
-
Merci phimselfbis,
Ta solution est beaucoup plus élégante.

Je suis impressionné par le nombre de personnes qui sont venus sur cette page depuis le mois de mars : 3312 fois à ce jour.
J'espère que cela aura été utile à beaucoup.
phimselfbis
Messages postés
3
Date d'inscription
mardi 28 janvier 2003
Statut
Membre
Dernière intervention
27 juillet 2007
-
Merci,
j'ai repris tes valeurs car il m'en manquait quelques unes et je les ai ajoutées à mon code. J'utilise pour ma part 2 tableaux, comme çà, on peut changer dans les 2 sens.

Dim NOMBRE
Dim VALEURS1
VALEURS1 = Array("ç","ä§","é","ä©","è","ä¨","ê","äª","ë","ä«","Ã?","ä?","Ã?","ä?","î","ä®","ï","ä¯","ì","Ã?","ä?","ò","ä²","ô","ä´","ö","ä¶","õ","ó","ø","äµ","ä³","ä¸","Ã?","ä?","Ã?","ä?","à ","ä ","â","ä¢","ä","ä¤","Ã¥","ä¥","Ã?","ä?","Ã?","ä?","ù","û","ü","ä¼","Ã?","Ã?","ä¹","ä»","ä¼","ä¼","ä?","ä?","ò","ñ")
VALEURS2 = Array("ç", "ç", "é", "é", "è", "è", "ê", "ê", "ë", "ë", "Ê", "Ê", "Ë", "Ë", "î", "î", "ï", "ï", "ì", "Î", "Î", "ò", "ò", "ô", "ô", "ö", "ö", "õ", "ó", "ø", "õ", "ó", "ø", "Ô", "Ô", "Ö", "Ö", "à", "à", "â", "â", "ä", "ä", "å", "å", "Â", "Â", "Ä", "Ä", "u", "û", "ü", "ü", "Û", "Ü", "u", "û", "ü", "ü", "Û", "Ü", "ñ", "ñ")

texte = "mon texte"
temp = 0
For each NOMBRE in VALEURS1
texte = replace( texte, VALEURS1(temp), VALEURS2(temp) )
temp = temp+1
next

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.