Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP General > What charset the IIS uses to decode POST request?

Reply
Thread Tools

What charset the IIS uses to decode POST request?

 
 
Pavils Jurjans
Guest
Posts: n/a
 
      10-23-2003
Hallo,

I am working on multilingual web-application, and I have to be very sure
about how the international characters are encoded and decoded in the
client-server form requests.

There's a great article about the issue:
http://ppewww.ph.gla.ac.uk/~flavell/...form-i18n.html

Generally, that states that this are is filled with landmines. From my tests
I see that form content upon POST request is encoded using the character
encoding from the html page that hosted the form. However, there is no
information about the used codepage in the POST request, and the server side
has somehow to guess it so that it can decode the data properly and populate
the Request.Form collection. My tests show that if the requester page is
plain html with utf-8 codepage Content-Type metatag, the serverside
sometimes does, but most time fails to decode the characters properly.

So, my question is, what codepage is used when interpreting and decoding the
POST request data anf Request.Form collection is populated? I cuold write my
own interpreter that takes the data out from Request.BinaryRead(), but I
would prefer to use the default Request.Form collection tough.

Thanks,


-- Pavils


 
Reply With Quote
 
 
 
 
Arnold Shore
Guest
Posts: n/a
 
      10-23-2003
My sympathies. You may have noticed my posts on this question, and also the
lack of any response. Yes, that link has a super discussion of the issue.

The route I took was to end-run the problem by converting the input at POST
time to 7-bit-safe stuff, filled into a hidden field. In addition to a
database record of the input, I was trying to generate data for an RTF file
as a possible output, and while the database contents were handled correctly
in both directions, I could find nothing on its format for purposes of
converting to the "hex Unicode" Code-page format that RTF requires.

That is, a two-byte UTF-8 Cyrillic character was converted to a 4-byte
value, and I couldn't discern the conversion algorithm. I expect it's
related to a double conversion. A couple of cuts at reverse-engineering
failed. If you succeed, pls share the solution.

FYI, I used the Javascript charCodeAt() function for the client-side
conversion. HTH a bit more than just sympathy.

AS


 
Reply With Quote
 
 
 
 
Antonin Foller
Guest
Posts: n/a
 
      10-23-2003
Hi, Pavils

ASP uses ANSI code page to decode source data. You have to explicitly
specify utf-8 code page to work correctly with form data:
<%@ Codepage=65001 %>

BTW. I worked a lot of time to create component working with form-data,
any code page, accepting up to 2GB of multipart and url-encoded form data
(Request.Form has a 100kB limit). You can find it at http://www.pstruh.cz
(Huge-ASP upload)

Antonin


"Pavils Jurjans" <> wrote in message
news:#...
> Hallo,
>
> I am working on multilingual web-application, and I have to be very sure
> about how the international characters are encoded and decoded in the
> client-server form requests.
>
> There's a great article about the issue:
> http://ppewww.ph.gla.ac.uk/~flavell/...form-i18n.html
>
> Generally, that states that this are is filled with landmines. From my

tests
> I see that form content upon POST request is encoded using the character
> encoding from the html page that hosted the form. However, there is no
> information about the used codepage in the POST request, and the server

side
> has somehow to guess it so that it can decode the data properly and

populate
> the Request.Form collection. My tests show that if the requester page is
> plain html with utf-8 codepage Content-Type metatag, the serverside
> sometimes does, but most time fails to decode the characters properly.
>
> So, my question is, what codepage is used when interpreting and decoding

the
> POST request data anf Request.Form collection is populated? I cuold write

my
> own interpreter that takes the data out from Request.BinaryRead(), but I
> would prefer to use the default Request.Form collection tough.
>
> Thanks,
>
>
> -- Pavils
>
>



 
Reply With Quote
 
Pavils Jurjans
Guest
Posts: n/a
 
      10-24-2003
Thanks, Antonin,

This bit of info was the last one to complete my puzzle. Now I'm happy (tm).

Yes, I know of your site and the great components you have made. In this
case, I am looking for more tech insight on the POST format problems. I have
my own pure-ASP upload in JScript working very fine, and I prefer to stay
with pure code class, because then I have full control of what happens
inside.

Regards,

-- Pavils

"Antonin Foller" <> wrote in message
news:...
> Hi, Pavils
>
> ASP uses ANSI code page to decode source data. You have to explicitly
> specify utf-8 code page to work correctly with form data:
> <%@ Codepage=65001 %>
>
> BTW. I worked a lot of time to create component working with

form-data,
> any code page, accepting up to 2GB of multipart and url-encoded form data
> (Request.Form has a 100kB limit). You can find it at http://www.pstruh.cz
> (Huge-ASP upload)
>
> Antonin



 
Reply With Quote
 
Pavils Jurjans
Guest
Posts: n/a
 
      10-27-2003
Arnold, I think I may help you with your issues. Just make you contactable,
mail me or ICQ: 4047612

-- Pavils

"Arnold Shore" <> wrote in message
news:%...
> My sympathies. You may have noticed my posts on this question, and also

the
> lack of any response. Yes, that link has a super discussion of the issue.
>
> The route I took was to end-run the problem by converting the input at

POST
> time to 7-bit-safe stuff, filled into a hidden field. In addition to a
> database record of the input, I was trying to generate data for an RTF

file
> as a possible output, and while the database contents were handled

correctly
> in both directions, I could find nothing on its format for purposes of
> converting to the "hex Unicode" Code-page format that RTF requires.
>
> That is, a two-byte UTF-8 Cyrillic character was converted to a 4-byte
> value, and I couldn't discern the conversion algorithm. I expect it's
> related to a double conversion. A couple of cuts at reverse-engineering
> failed. If you succeed, pls share the solution.
>
> FYI, I used the Javascript charCodeAt() function for the client-side
> conversion. HTH a bit more than just sympathy.
>
> AS
>
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
cp936 uses gbk codec,doesn't decode `\x80` as U+20AC EURO SIGN John Machin Python 1 10-11-2010 08:54 AM
problem with jsp - Base64 decode POST Parameter inetquestion Java 3 09-22-2010 11:13 PM
javascript charset <> page charset optimistx Javascript 2 08-15-2008 12:42 PM
Post post post. Shel-hed Computer Support 2 11-08-2003 07:41 AM
Can post form data in IIS, but doesnt post it via webserver J. Muenchbourg Javascript 0 08-06-2003 05:23 PM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57