Newsgroup: it.comp.www.php
Titolo: PHP, jQuery e charset

Buongiorno a tutti!
Sono 3 ore che giro a vuoto...ho cercato in mezzo google ma non mi riesce di 
venirne fuori...chiedo lumi a voi!
Detta molto semplicemente, devo controllare (via jQuery/Ajax) se l'input di 
un campo di testo è accettabile o no. Quindi nella pagina .html ho il mio 
form con l'input (charset della pagina è iso-8859-1).
Con jQuery invio una richiesta asincrona al PHP, che mi deve controllare 
appunto l'input (ora come ora si limita solo a scrivere il valore della 
variabile POST che gli arriva....) in particolare che non ci siano caratteri 
"strani" (come ad es |\/%$() o quant'altro) né lettere accentate. Il 
problema è che se digito "è" nel campo di text, l'echo di PHP  mi restiuisce 
il corrispondente A(con la tilde).
Tutti dicono che è un problema di charset...ma i due charset (del file html 
e del file php) sono uguali, come potete vedere dagli script che ho 
riportato di sotto
Non capisco dove sto sbagliando.....avreste qualche suggerimento??
Grazie!
Creuza
**********************
Ecco i 3 script
File HTML
  <head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
 <script type="text/javascript" src="./jquery.js"></script>
 <script type="text/javascript" src="./prova.js"></script>
  </head>
  <div id="div1">
   <form>
    <input type="text" name="testo" / >
   </form>
  </div>
  <br><br>
  <div id="div2">Qui mi appare la risposta del server </div>
-----------------
FILE JS
$(document).ready(function(){
 $("input[name='testo']").blur(function(){
  var testo_immesso=$(this).val();
   $.post("check.php",
         {testo: testo_immesso},
         function(data){
          $("#div2").text(data);
         });
 });
});
--------
FILE PHP
<?php
header("content=text/html; charset=iso-8859-1");
echo "Server's saying: ".$_POST['testo'];
?>

 PHP  mi restiuisce il corrispondente A(con la tilde).
Spero di non spararla troppo grossa, ma da quello che mi ricordo, 
Javascript usa internamente utf-8, soprattutto per le chiamate 
xmlHttpRequest (quindi AJAX, quindi anche jQuery).
Converti tutto a utf-8 :)
Bye.

 ha scritto nel messaggio 
news:6gfo7nF...@mid.individual.net...

Grazie per il suggerimento...l'avevo già provato prima (mi ero scordato di 
specificarlo nel post precedente)...e, come puoi intuire, i risultati sono 
stati analoghi....è per quello che, per rifarmi a quanto scritto prima, sono 
del tutto spiazzato e non so veramente più che fare....tieni pure conto che 
di default per jQuery il contentType dell'oggetto $.ajax è settato a 
"application/x-www-form-urlencoded" quindi a maggior ragione brancolo nel 
buio più completo.... 

 brancolo nel buio più completo....
Mi rimangio tutto....ho riavviato il PC (windows...) svuotato la cache ed 
ora magicamente vedo quello che mi aspetto di vedere...boh...ci sto capendo 
ancor meno di prima...ad ogni modo ora funziona e quindi ad uso futuro, 
confermo il tuo suggerimento, ossia CONVERTIRE A UTF-8
Grazie ancora per l'hint....mi sa proprio che avanzi un caffè....;-)

 
Ho affrontato un problema simile, ma la soluzione non è che mi soddisfi 
assai.
cmq
utf-8 (ini_set('default_charset', 'UTF-8');), le stringhe poi le passo a 
utf8-encode()
per esempio per scrivere la a maiuscolo accentata faccio (senza 
ricorrere alle entities hrml) con
<?=utf8_encode("ANZINITÁ")?>
via javascript però sono dovuto ricorrere alle entityes o alla versione 
esadecimale