Ajax encodage

Smoking bird Messages postés 911 Statut Membre -  
Smoking bird Messages postés 911 Statut Membre -
Bonjour,

J'ajoute du AJAX à un backoffice, qui permet de voir comment s'affichera le contenu sur le site. Je passe par un textarea pour taper le texte, qui envoi la chaîne via javascript à un formulaire php qui traite la chaîne correctement et la renvoi mise en forme.

J'utilise un encodage iso-8859-1, que je précise dans le head de mon document, et que je rappelle au début de mon script php.

Il se trouve que sous IE et Firefox, ça fonctionne comme il faut de cette façon. Mais sous Opera, ça me remplace les é par des
é
dans la réponse AJAX.

Bien entendu, ce n'est pas acceptable. J'ai fais différents essais, passant notamment en UTF8, sans parvenir à un résultat potable, il y a toujours un navigateur qui se comporte différement des autres. Pour l'avoir expérimenté, je sais que pour ce genre de problème on peut obtenir un résultat semblable partout, mais je n'arrive pas à remettre cela en pratique.

Quelqu'un peut-il m'aider?

Cordialement,

Smoke

32 réponses

Smoking bird Messages postés 911 Statut Membre 58
 
d'accord, merci ^^ j'm'en doutais, mais j'comprennais pas pourquoi on donnerait deux noms à une même notion....
voici la collation: latin1_swedish_ci
1
Smoking bird Messages postés 911 Statut Membre 58
 
up
0
math 2000 Messages postés 2833 Statut Membre 405
 
essaie tout les encode qui existe
ou passe la page pour voir celui qui conviendrait
0
Smoking bird Messages postés 911 Statut Membre 58
 
J'ai essayé tout ce que j'ai trouvé sur les différents forums, et les différentes combinaisons que j'pouvais faire avec. Je transmet le code source:

Page où se trouve le formulaire, je l'ai épurée pour la lisibilité:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type='text/javascript' src='prototype.js'></script>
<script type='text/javascript' src='secureJS.js'></script>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
<!--<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>-->
<link rel="stylesheet" type="text/css" media="screen" href="waffleWorksCss.css" />
</head>
<body>
<div id='formed'><form action='index.php?root=articles&branch=edit&chemin=ff4b22&ref=5f7e4f' enctype='multipart/form-data' method='post'>
<span class='titre'>Edit an article</span>
<span class='corps'>
This article will be saved in <span class='inHeaderTitre'>Présentation du Consulat Général</span>.
<br />Last author: Sarafan.<input type='hidden' name='edit[ref]' value='5f7e4f'/>
<label>Title: <input type='text' name='edit[titre]' value=""/></label>
<label>Text: <textarea id='before' onkeyup='javascript:getSeeer()' name='edit[texte]'></textarea></label><input type='hidden' name='archive' value=''/><a href='#' onclick="javascript:poping('450')">Picts Device</a> 
<a href='#' onclick="document.getElementById('Adan').style.display='block';">Add pictures</a><span id='Adan' style='display:none'>Use only letters and numbers to name your pictures, otherwise saving will fail.<br />
<label>Picture n°1: <input type='file' size='7' name='tabh[]'/></label>
<label>Picture n°2: <input type='file' size='7' name='tabh[]'/></label>
<label>Picture n°3: <input type='file' size='7' name='tabh[]'/></label>
</span>
<br /><label class='status'>Online: <input type='radio' checked value='online' name='edit[status]'/></label>
<label class='status'>Offline for edition: <input type='radio' value='offline' name='edit[status]'/></label><br /><span id='seeer'></span></span>
<input type='submit' value='Send'/>
</form>
</body>
</html>


fonction javascript pour l'envoi d'ajax:
function getSeeer() {
				if(window.XMLHttpRequest)
					{
						var htr=new XMLHttpRequest();
					}
					
				if(window.ActiveXObject)
					{
						var htr=new ActiveXObject('Microsoft.XMLHTTP');
					}
				var string=document.getElementById('before').value.replace( /\n/g , "<br \/>" );
				var url="seeer.php?string="+string;
				htr.open("GET",url,false);
				htr.send("null");
				document.getElementById('seeer').innerHTML=htr.responseText;
				
	}


page de traitement php:
<?php
	//header('Content-type: text/html; charset=iso-8859-15');
	//header('Content-type: text/html; charset=UTF-8');
	header('Content-Type: text/html; charset=ISO-8859-1');
	include_once('classicTools.php');

	$string=$_GET['string'];
	echo "<p class='seeer'>".string::outText($string)."</p>";
	//echo "<pre><xmp><p class='seeer'>".string::outText($string)."</p></xmp></pre>";
?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Smoking bird Messages postés 911 Statut Membre 58
 
up
0
math 2000 Messages postés 2833 Statut Membre 405
 
met un exemple sur un site ça sera plus simple
0
Smoking bird Messages postés 911 Statut Membre 58
 
Je ne préfèrerais pas^^, ce n'est pas un projet perso, et je n'ai pas le droit de faire ça^^, de plus, je pense que j'ai fourni les informations suffisantes^^ : o)
0
math 2000 Messages postés 2833 Statut Membre 405
 
peut tu passer un zip '(par mail si tu veux )alors et tu efface tous ce que tu veux cacher

sinon je peux rien faire et je suis le seul à avoir répondu
0
Smoking bird Messages postés 911 Statut Membre 58
 
Les gens répondent assez peu à mes sujets ;) donc j'suis habitué à trouver la plupart du temps tout seul après m'être longtemps, longtemps arraché les cheveux.

Ce n'est pas qu'une question de contenu à ne pas montrer (d'ailleurs ici je l'ai retiré^^), c'est aussi une question de code source. Je peux à la grande limite, et c'est ce que j'ai déjà fait, en partager une partie, mais je n'ai pas le droit de livrer tout ou partie de l'infrastructure du site^^
0
math 2000 Messages postés 2833 Statut Membre 405
 
ben oui mais alors c'est comme si tu me disais que tu n'arrive pas à faire un gâteau sans me donner les ingrédient sinon pourquoi tu utlise des encodage différent sur ta page php fais tous avec le même encodage
0
Smoking bird Messages postés 911 Statut Membre 58
 
Comme dit dans le sujet, j'ai tenté avec le même encodage partout, rien n'y a fait :s

Sinon, amusante ta comparaison avec le gâteau :D mais pour te répondre, il m'est déjà arrivé -et je suppose qu'à toi aussi, d'aider quelqu'un sur CCM juste avec quelques bouts de code source^^ sans avoir à tester la structure^^ C'est pas une question de mauvaise volonté, c'est que j'peux pas donner plus, et en même temps ça devrait suffire à quelqu'un qui connaît^^
0
math 2000 Messages postés 2833 Statut Membre 405
 
désolé alors on va voir si quelqu'un de plus expérimente va pouvoir t'aider
0
Smoking bird Messages postés 911 Statut Membre 58
 
Pas de soucis, croisons les doigts ;)
0
Smoking bird Messages postés 911 Statut Membre 58
 
up, je n'ai toujours pas trouvé ^^
0
P@t@ch0n Messages postés 603 Statut Membre 85
 
Pourrait-on voir ce que fait ta méthode outText() ?

L'encodage de tes pages est lequel en fait ?
0
Smoking bird Messages postés 911 Statut Membre 58
 
C'est encodé en ISO, et ma méthode outText utilise trim et stripslashes, avec quelques preg_match, preg_replace, et str_replace, rien de très significatif par rapport à l'encodage je pense :s :(
0
P@t@ch0n Messages postés 603 Statut Membre 85
 
Sers-toi de utf8_decode() sur le retour de tes valeurs, car ajax utilise toujours de l'utf8.
0
Smoking bird Messages postés 911 Statut Membre 58
 
$string=utf8_decode($_GET['string']);

voici ce que j'ai fait
Dans IE et Firefox, ça me remplace 'Télécopie' par 'T?copie', et... ça m'arrange pas trop : o) aurais tu d'autres idées? En tous cas merci de ton attention^^
0
math 2000 Messages postés 2833 Statut Membre 405
 
la seule idée que j'ai sont débile
1)'utilisé des images
2)ou d'utlisé des frame
0
P@t@ch0n Messages postés 603 Statut Membre 85
 
$string=utf8_decode($_GET['string']);

Pas sur ton $_GET['string'], mais sur ce que retourne ta méthode.
Je réitère, elle fait quoi au jute cette méthode ? D'où proviennent les données que tu retournes ?
0