Hell yeah, after reading jquery's method $.param, i understood that the encodeURIComponent is used to serialize object.
And after reading ECMA spec about this function, I understood that only UTF-8 is outputed ! So, I understand that it's perfectly ok to utf8_decode() what I receive serverside in an iso context. I'm not OK to work in all utf-8 context when it's not needed. For example, MySQL sorting in utf-8 could be very much more longer in utf-8 than in ISO. I prefer say that, yeah, when you do a project in a special context, just do everything in that context. Thanx for your replies. Sorry for my english :) Alexandre Plennevaux a écrit : > did you try playing with the $.ajax scriptCharset option ? > see: http://docs.jquery.com/Ajax/jQuery.ajax > > > On Wed, Dec 31, 2008 at 1:27 PM, AdrianMG <yens...@gmail.com> wrote: >> I am not pretty sure but I think you can work with UTF8 only in AJAX, >> but I recommend you work with UTF8 always >> >> On Dec 30, 2:09 pm, Romain Viovi <imp...@gmail.com> wrote: >>> Hello Everybody, >>> >>> I'm experiencing some problems with the $.ajax >>> >>> When sending simple post request, request Headers (logged with firebug) >>> are always "application/x-www-form-urlencoded; charset=UTF-8" tagged for >>> content-type >>> >>> see : >>> >>> Request Headers >>> User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) >>> Gecko/2008120122 Firefox/3.0.5 >>> Accept */* >>> Accept-Language fr >>> Accept-Encoding gzip,deflate >>> Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 >>> Keep-Alive 300 >>> Connection keep-alive >>> Content-Type application/x-www-form-urlencoded; charset=UTF-8 >>> X-Requested-With XMLHttpRequest >>> Content-Length 152 >>> >>> But, i'm always working with iso-8859-1 encoding, my page include >>> headers with the good charset, php.ini is set to the good default charset. >>> >>> So, when i retrieve the $_POST, i've to utf8_decode() cause utf8 datas >>> are retrieved and special chars as "é", "à" are not recognised >>> >>> I think I shouldn't have to do that... >>> >>> Here's the test.html file : >>> >>> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >>> "http://www.w3.org/TR/html4/loose.dtd"> >>> <html> >>> <head> >>> <meta http-equiv="Content-Type" content="text/html; >>> charset=ISO-8859-1"> >>> <title>Test encoding</title> >>> <script type="text/javascript" language="javascript" >>> src="jquery-1.2.6.js"> >>> </script> >>> </head> >>> <body> >>> <form enctype="application/x-www-form-urlencoded; >>> charset=ISO-8859-1" action="test.php" name="search" method="post"> >>> <input id="qry" name="qry" value="" type="text" /><input >>> type="button" onclick="send();" value="ok" /> >>> </form> >>> <div id="answers"> >>> </div> >>> <script type="text/javascript" language="javascript"> >>> >>> function send(){ >>> $.ajax({ >>> type: "POST", >>> url: "./test.php", >>> contentType: "application/x-www-form-urlencoded; >>> charset=iso-8859-1", >>> data: { >>> qry: $('#qry')[0].value >>> }, >>> success: function(data){ >>> $('#answers').empty().append(data); >>> return; >>> } >>> >>> }); >>> } >>> </script> >>> </body> >>> </html> >>> >>> And the test.php : >>> >>> <?php >>> header("Content-Type: text/html; charset=ISO-8859-1"); >>> var_dump($_POST); >>> ?> >>> >>> Thanx for the help ! >>> >>> -- >>> Romain Viovi >>> 42 rue Pigalle >>> 75009 Paris >>> >>> +33 6 63 16 90 15 >>> +33 9 54 40 84 40 >>> >>> romain.vi...@gmail.com -- Romain Viovi 42 rue Pigalle 75009 Paris +33 6 63 16 90 15 +33 9 54 40 84 40 romain.vi...@gmail.com