begin process at 2010 03 18 10:46:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > DÉCODAGE DU FORMAT QUOTED-PRINTABLE

DÉCODAGE DU FORMAT QUOTED-PRINTABLE


 Information sur la source

Note :
Aucune note
Catégorie :Divers Niveau :Initié Date de création :12/04/2002 Date de mise à jour :12/04/2002 11:30:52 Vu :4 726

Auteur : 2ni

Ecrire un message privé
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

Cette fonction permet le décodage du format quoted-printable, c'est à dire des mails qui ressembles à ça : d=E9sol=E9

Source

  • function QP_Decode(input)
  • {
  • var s = input; //l'entree
  • var result = ""; //la sortie
  • var hexa = "0123456789ABCDEF"; //les caracteres hexa autorisés (Majuscules seulement. cf RFC)
  • while (s != "") //tant qu'il y a des caracteres dans l'entrée...
  • {
  • if (s.charAt(0) == '=') //oups, besoin d'être decodé ...
  • {
  • if (s.length < 3 ) //est ce qu'il y a encore trois caractères...
  • return result; //erreur pendant le décodage, on renvoi ce qui à déjà été decodé...
  • var mid = "";
  • s = s.slice(1, s.length); //on supprime le signe '=' de l'entrée
  • mid = s.slice(0,2); //on sauve le caractere sous sa forme hexadecimale
  • s = s.slice(2,s.length); //on supprime le caractere hexadecimal de l'entrée
  • if (mid == "\r\n") { //On vérifie si on a un saut de ligne
  • result += mid; //Oui, alors on l'ajoute à la sortie
  • } else if ( hexa.indexOf(mid.charAt(0)) != -1 && hexa.indexOf(mid.charAt(1)) != -1 ) { //vérifie que le caractère est bien HexaDécimal
  • var m = parseInt(mid,16); //on le converti en base 10
  • result += String.fromCharCode(m); //on converti le code ASCII obtenu en caractère et on l'ajoute à la sortie
  • } else { //Le caractere n'est pas compris entre 00 et FF
  • return result; //erreur pendant le décodage, on renvoi ce qui à déjà été decodé...
  • }
  • } else { // Le caractère n'est pas un signe '=' on l'ajoute donc à la chaine
  • result += s.charAt(0); // on l'ajoute donc au résultat
  • s = s.slice(1,s.length); // on enlève le caractère de l'entrée
  • }
  • }
  • return result;
  • }
function QP_Decode(input)
{
	var s = input;	//l'entree
	var result = "";	//la sortie
	var hexa = "0123456789ABCDEF"; //les caracteres hexa autorisés (Majuscules seulement. cf RFC)

	while (s != "") //tant qu'il y a des caracteres dans l'entrée...
	{
		if (s.charAt(0) == '=')  //oups, besoin d'être decodé ...
		{
            
			if (s.length < 3 )	//est ce qu'il y a encore trois caractères...
				return result;	//erreur pendant le décodage, on renvoi ce qui à déjà été decodé...

			var mid = "";
			s = s.slice(1, s.length); //on supprime le signe '='  de l'entrée
				
     		mid = s.slice(0,2);		//on sauve le caractere sous sa forme hexadecimale
		    s = s.slice(2,s.length);	//on supprime le caractere hexadecimal  de l'entrée
		    
		    if (mid == "\r\n") {	//On vérifie si on a un saut de ligne
				result += mid;		//Oui, alors on l'ajoute à la sortie
			} else if ( hexa.indexOf(mid.charAt(0)) != -1 && hexa.indexOf(mid.charAt(1)) != -1  ) { //vérifie que le caractère est bien HexaDécimal
				var m = parseInt(mid,16);				//on le converti en base 10
				result += String.fromCharCode(m);	//on converti le code ASCII obtenu en caractère et on l'ajoute à la sortie
			} else {	//Le caractere n'est pas compris entre 00 et FF
				return result; //erreur pendant le décodage, on renvoi ce qui à déjà été decodé...
			}
		
		} else {	// Le caractère n'est pas un signe '=' on l'ajoute donc à la chaine 
		    result += s.charAt(0);	// on l'ajoute donc au résultat
		    s = s.slice(1,s.length);	// on enlève le caractère de l'entrée
		}
	}
return result;
} 

 Conclusion

par exemple :

document.writeln( QP_Decode("=E9l=E9phant") );


 Sources de la même categorie

Source avec Zip Source avec une capture SÉQUENCEUR par jdmcreator
Source avec Zip COMPRESSION DE TEXTE CÔTÉ CLIENT EN JS VIA ALGORYTHME LZW par niamor36
Source avec Zip VIRTUAL IPHONE (V.2) par loicseg
Source avec Zip MOOTABLEAU par Miky76
Source avec Zip CALCULER VOTRE IMC par lesnouesremy

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire




Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales