Originariamente inviato da nourdine
si mail dubbio che mi resta è:

è OGNI caratteri iso-8859-1 codificato nello stesso modo anche in utf-8??

mi sembra logico pensare di si visto che utf-8 estende le codifche iso. per altro non ne posso esserne certo ed è per questo che chiedo ...

in effetti se cosi fosse (iso sottoinsieme di utf-8) non ci dovrebbero essere problemi a offrire una stringa iso-8859-1 (mandata da php) ad ajax. visto che javascript è unicode dovrebbe essere in grado di interpretare correttamente anche iso. ma sempre e solo nell'ipotesi che iso sia un sottoinsieme di unicode.

mi è infatti successo di spedire a javascript delle stringhe iso-8859-1 che venivano male codificate nel browser ... il che mi fa pensare che la mia domanda di partenza (è OGNI caratteri iso-8859-1 codificato nello stesso modo anche in utf-8) si merito un secco NO!

devo studiarmele ste robe ... è che non ho tempo


ciao
Infatti no, tutti i caratteri iso-8859-1 non hanno corrispondenza con tutti i caratteri UTF-8.
Ma tu di questo non devi preoccuparti per quello che ti ho spiegato: la codifica in UTF-8 di un carattere non facente parte del charset UTF-8 viene fatta in 2 byte, che poi UNICODE può tranquillamente interpretare.
Tu però non vedi per niente quel passaggio, perché passi all'utf8_decode() le stringhe solo prima di restituirle a JavaScript.

In pratica:
Codice PHP:

<?php
// stampo la stringa da inviare a JavaScript:
$string "àèéìòù@ç#§£$%&";
echo 
utf8_encode($string);
?>
Anche se quella stringa da 14 caratteri trasformata in UTF-8 venisse trasformata in modo astruso e illeggibile (codifica di un carattere in più byte) Ajax la leggerà in UNICODE decodificando correttamente la tua stringa.

Al contrario per inviare stringhe da JavaScript a PHP:

codice:
<script type="text/javascript">
<!--

function ajaxblabla() {
     var msg = "àèéìòù etc...";
     
     // tuo codice per la chiamata asincrona...
     
     xmlHttp.open("GET", "slavePage.php?msg=" + encodeURIComponent(msg), true);
     xmlHttp.send(null);

     // blablabla...
}

//-->
</script>

Il fatto è che normalmente una pagina che invia i dati ad Ajax non viene aperta in altri modi o inclusa in altri script lato server per essere stampata a schermo, quindi la codifica intermedia in utf-8 non deve essere vista e non costituisce un problema.
Spero di aver risposto al tuo quesito.