2010-08-19 5 views
2

S'il vous plaît j'ai posé cette question, dans l'espoir d'obtenir des réponses cette fois-ciCaractères spéciaux et multilangues

J'ai créé un simple mur de commentaires qui Soumet en utilisant ajax.

En utilisant javascript je collectionne les entrées utilisateur:

var sharetxt = encodeURIComponent(document.getElementById("cw_share_txt").value); 

passe alors à une page php, sur la page php, je collectionne les données transmises:

$text=nl2br(htmlentities(trim(utf8_decode($_POST["txt"])))); 

encodage de la page php ci-dessus :

header("Content-Type: text/xml; charset=utf-8"); 

Mon problème est que

  1. le mur ne supporte pas encore plusieurs langues (affiche comme ???? et provoque mon xml de ne pas travailler)

  2. i encore des problèmes avec certains caractères spéciaux (affiche comme à ¢ ou ÂÂ?)

Qu'est-ce que je fais pas? s'il vous plaît aider

+0

J'ai supprimé le utf_decode, mais il ne s'affiche pas correctement. Sur la page php où se déroule le traitement d, j'ai défini un en-tête définissant le jeu de caractères sur utf8: header ("Content-Type: text/xml; jeu de caractères = utf-8") ;. Sur la page html où je rassemble les données, j'ai défini le jeu de caractères comme: . pls aucune idée? –

+0

pls je dois suggérer, je suis sûr que les amis ici peuvent m'aider à sortir de ce gâchis –

+0

mon problème est toujours non résolu, veuillez contribuer ... –

Répondre

1
  1. Essayez de ne pas utf8_decode
  2. Essayez d'utiliser: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> dans l'en-tête de la page pour afficher correctement les caractères
+0

J'ai supprimé le utf_decode, mais il ne s'affiche pas correctement. Sur la page php où se déroule le traitement d, j'ai défini un en-tête définissant le jeu de caractères sur utf8: header ("Content-Type: text/xml; jeu de caractères = utf-8") ;. Sur la page html où je rassemble les données, j'ai défini le jeu de caractères comme: . pls, avez-vous d'autres indices? –

0

qui ressemble à un cas classique de mauvaise encodage.

Je ne pense pas que vous avez besoin de l'appel à utf8_decode(). Puisque la page source est déjà déclarée comme UTF-8 alors les données postées sont UTF-8 et vous devriez a) laisser UTF-8 et b) assurez-vous de déclarer la page cible comme UTF-8. (IE, par exemple, a la réputation de deviner mal les jeux de caractères, mais (par exemple) je sais qu'Opera est sur la défensive et soumet des entités HTML s'il ne peut pas correspondre aux jeux de caractères. vous avez une idée de ce qui est vraiment faux!)

+0

J'ai supprimé le utf_decode, mais il ne s'affiche pas correctement.Sur la page php où se déroule le traitement d, j'ai défini un en-tête définissant le jeu de caractères sur utf8: header ("Content-Type: text/xml; jeu de caractères = utf-8") ;. Sur la page html où je rassemble les données, j'ai défini le jeu de caractères comme: . Avez-vous d'autres indices? –

+0

Ils devraient tous les deux faire la même chose. Regardez dans la page d'information du navigateur (pour les deux pages) pour voir si elle a défini le bon jeu de caractères. Vérifiez si les pages cibles s'affichent correctement si vous forcez le navigateur à utiliser UTF8. – staticsan

+0

il semble que toutes mes pages sont utf8 –

0

Et aussi, essayez de changer le codage du document. J'ai eu le même problème que vous et j'ai changé le meta charset et l'encodage de document, fonctionne comme un charme.

+0

quel charset est-ce que je change? le charset de page html ou le charset d'en-tête php? et qu'est-ce que je change à? –

+0

Je viens de Suède, et comme la page était en suédois, j'ai changé le jeu de caractères en ISO-8851-1 (Latin 1). – hellozimi

+0

Oh, désolé. Je n'ai pas répondu à la question. J'ai changé les deux fichiers. Parce que si l'un est Latin 1 et l'autre est utf-8, il y aura une différence dans le codage des caractères. – hellozimi