Ajax encodage
Smoking bird
Messages postés
911
Statut
Membre
-
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
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
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
A voir également:
- Ajax encodage
- Encodage ascii - Guide
- Encodage caractères AJAX ✓ - Forum Programmation
- Télé encodage - Forum TV & Vidéo
- Erreur ajax ✓ - Forum Javascript
- Yggtorrent erreur ajax ✓ - Forum Javascript
32 réponses
function outText($string){
$string=trim(stripslashes($string));
$string="<span>$string</span>";
$string=preg_replace('#<br /><br />#','</span><span>',$string);
preg_match_all('~\<span\>Adresse[\w\d\s\'\,\.\(\)\:\;\<\/\>\-\@\=éà]{0,500}\<\/span\>~iU',$string,$results);
foreach($results as $chain){
$rep=str_replace('<span>',"<span class='adress'>",$chain);
$string=str_replace($chain,$rep,$string);
}
preg_match_all('~www\.[\w\d\-\.\?\&\/]{6,1000}~i',$string,$links);
foreach($links[0] as $mark){
$nextL="<a target='_blanck' href='http://$mark'>$mark</a> ";
$string=str_replace($mark,$nextL,$string);
}
preg_match_all('~[\w\-\_\.]{1,40}\@[\w]{1,15}\.[\w\.]{1,10}~i',$string,$mails);
foreach($mails[0] as $mail){
$nextM="<a href='mailto:$mail'>$mail</a>";
$string=str_replace($mail,$nextM,$string);
}
preg_match_all('~(\<img\ssrc\=\'picts\/([\w]{6}\.(?:jpg|png))\'\sclass\=\'(?:ctr|lft|rht)Img\'\/\>)~i',$string,$img);
list($masque,$image,$fichier)=$img;
foreach($fichier as $idF=>$file){
if( !file_exists('../picts/'.$file) ){
$string=str_replace($image[$idF],' ',$string);
}elseif(file_exists("../picts/$files") ){
$string=str_replace('picts/','../picts/',$string);
}
}
return $string;
}
voilà comment elle fonctionne, le texte provient d'un textarea, j'ai donc tenté ceci:
$string=$_GET['string'];
echo "<p class='seeer'>".utf8_decode(string::outText($string))."</p>";
sans succès :s
Pour les images, je pense que ce sera trop lourd à charger, pour les frames, je préfère éviter le plus possible, je trouve pas ça très propre ni très moderne comme technique^^
J'ai remarqué que sous opera, où ça fonctionne comme il faut pour les accents, il interprètes les " différement. Ceux du texte de base, tapés probablement sur un clavier anglais, ne sont pas droits mais inclinés, et les miens sont droits, et corrigent l'erreur. Je pense que c'est un début de piste, ça me rappelle quelque chose mais je n'arrive pas à mettre le doigt dessus :s
Bsr
Et avec ça ?
Et avec ça ?
function getSeeer() {
// Préparation des paramètres
var parameters = new Object();
parameters["string"] = document.getElementById('before').value.replace( /\n/g , "<br \/>" );;
var queryString = '';
for (var param in parameters)
{
if (queryString != '') queryString = queryString + '&';
queryString = queryString + escape(param)+ '=' + escape(parameters[param]);
}
if(window.XMLHttpRequest)
{
var htr=new XMLHttpRequest();
}
if(window.ActiveXObject)
{
var htr=new ActiveXObject('Microsoft.XMLHTTP');
}
htr.open("GET",'seeer.php?'+queryString,false);
htr.send("null");
document.getElementById('seeer').innerHTML=htr.responseText;
}
Bonsoir PhP,
J'ai fait un simple copié-collé de ta fonction, ne comprennant pas tout ce qu'il y a dedans (suis une bille en javascript), et malgré cela ça ne change rien :s y'a toujours le problème d'affichage (réduction des caractères et remplacement par un '?') :s
J'ai fait un simple copié-collé de ta fonction, ne comprennant pas tout ce qu'il y a dedans (suis une bille en javascript), et malgré cela ça ne change rien :s y'a toujours le problème d'affichage (réduction des caractères et remplacement par un '?') :s
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pourquoi tu ne réponds pas à ma question ?
Une autre, tu développes avec quel éditeur/environnement de développement ?
Une autre, tu développes avec quel éditeur/environnement de développement ?
Hum oui Patachon a raison Tu utilises quels softs / librairies ?
De plus comment peux-tu utiliser AJAX si tu n'y connais rien en Javascript ? !!!!
De plus comment peux-tu utiliser AJAX si tu n'y connais rien en Javascript ? !!!!
Patachon, quelle question? Il me semble t'avoir répondu, si ce n'est le cas, c'est que je ne l'ai pas vue (toutes mes excuses).
Je développe avec programmer's notepad 2, sur l'espace que j'ai chez celeonet, mon local ne fonctionnant plus depuis quelques temps. Je n'utilise aucune librairie externes ni aucun autre soft, c'est que du maison^^
Je m'y connais vraiment très peu en javascript, je fais quelques trucs de base, mais je ne suis clairement pas un expert, j'en ai conscience^^. Je n'utilise probablement pas un quart des capacités de javascript, c'est pour ça que j'dis ça^^, bien que j'utilise souvent ce langage (pour les mêmes choses)
Je développe avec programmer's notepad 2, sur l'espace que j'ai chez celeonet, mon local ne fonctionnant plus depuis quelques temps. Je n'utilise aucune librairie externes ni aucun autre soft, c'est que du maison^^
Je m'y connais vraiment très peu en javascript, je fais quelques trucs de base, mais je ne suis clairement pas un expert, j'en ai conscience^^. Je n'utilise probablement pas un quart des capacités de javascript, c'est pour ça que j'dis ça^^, bien que j'utilise souvent ce langage (pour les mêmes choses)
Je ne connais pas cet éditeur, mais à première vue, il a l'air correct.
Ma question était :
Je réitère, elle fait quoi au juste cette méthode ? D'où proviennent les données que tu retournes ?
Fichier (quel type) ? BDD ?
Ma question était :
Je réitère, elle fait quoi au juste cette méthode ? D'où proviennent les données que tu retournes ?
Fichier (quel type) ? BDD ?
il est très correct^^
Désolé, j'ai cru que tu voulais le code
Elle met en forme la chaîne récupérée du textarea comme elle sera une fois online, donc alinéa lettrines et tout le tuttim
Les données proviennent d'une bdd (myisam) et elles s'affichent dans un textarea
Désolé, j'ai cru que tu voulais le code
Elle met en forme la chaîne récupérée du textarea comme elle sera une fois online, donc alinéa lettrines et tout le tuttim
Les données proviennent d'une bdd (myisam) et elles s'affichent dans un textarea
La collation de ta table est en quoi ?
Il est étrange ton problème tout de même, je ne comprend pas trop pourquoi seul Opera interpréterait mal les données.
Tu as vidés les caches des navigateurs à chaque essais ?
Il est étrange ton problème tout de même, je ne comprend pas trop pourquoi seul Opera interpréterait mal les données.
Tu as vidés les caches des navigateurs à chaque essais ?