Encodage json

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Encodage json

Re: Encodage json

par rimie » 24 févr. 2012, 05:19

je vais essayer avec le header

Re: Encodage json

par AB » 23 févr. 2012, 01:17

<?php
header('Content-type: text/html; charset=UTF-8');
A mettre en haut de page car il est très possible que l'entête apache soit toujours par défaut en iso et cette entête prime toujours sur celle que vous avez déclaré dans le meta html (excepté si vous pouvez configurer le serveur avec : AddDefaultCharset Off)

Pour plus d'info cf ce tuto

Re: Encodage json

par Shenryu » 22 févr. 2012, 14:44

Le type text/json existe mais il faut le mettre au niveau du php.

Tu peux garder ta balise meta pour ta page HTML.

Re: Encodage json

par rimie » 22 févr. 2012, 14:22

si j'ajoute:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
il n'affiche rien parce que c'est du json

Re: Encodage json

par Shenryu » 22 févr. 2012, 11:28

Salut,
Cette fonction ne fonctionne qu'avec des données encodées UTF-8.
Comment as-tu essayé l'encodage UTF-8 ?
$return_arr["welcome"] = utf8_encode($welcome);
N'oublies pas de définir tes encodages (header php, meta, fichier php).

++

Re: Encodage json

par moogli » 22 févr. 2012, 09:53

problème de charset ?

a tu essayé de ne passer que les données et ajouter la mise en forme en JS (ce n'est qu'une concaténation).


@+

Encodage json

par rimie » 22 févr. 2012, 05:10

Bonjour

Je fais une transmission de donnees via PHP/json, les lettres latines (a, b, c,...) se passent via json mais les autres caracteres me donnent un vide, cas des caracteres arabes:


verif.php:

<?php

$return_arr = array();

$pseudo = $_POST['username'];


// traitement de donnees


			
			$welcome = '<hr>';
			$welcome .= 'Bienvenue';
			$welcome .= ' '.$pseudo;

$return_arr["welcome"] = $welcome;

echo json_encode($return_arr);

?>

si le pseudo est en lettres latines ca marche, sinon il affiche Bienvenue et c'est tou

index.php:
$.ajax({
        type: "POST",
        url: "verif.php",
        data: dataString,
        dataType: "json",
        success: function(data) {
             
			 if(data.loginError == 0)
             {
             	$('.loginForm').fadeOut(3000);
             	$('span.showForm').fadeIn(3000).html(data.welcome);
             	
             	// resultat: Bienvenue (vide) en cas d'un utilisateur avec des caractes arabes
             	
             }
j'ai meme essaye l'encodage utf8 mais ca marche toujours pas

merci pour votre aide