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

Reply via email to