Sample code for 30+ languages & platforms
Classic ASP Requires Chilkat v11.0.0+

URL Encoding Charset in POST Query Params

See more HTTP Examples

Demonstrates how to control the URL encoding charset in POST query params.

Chilkat Classic ASP Downloads

Classic ASP
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
success = 0

'  This example requires the Chilkat API to have been previously unlocked.
'  See Global Unlock Sample for sample code.

'  We have the string "MÆRSK".
nameWin1252Encoded = "M%E6RSK"

set sb = Server.CreateObject("Chilkat.StringBuilder")
success = sb.DecodeAndAppend(nameWin1252Encoded,"url","windows-1252")

set http = Server.CreateObject("Chilkat.Http")

'  We're setting the session log filename so we can see the exact request sent.
http.SessionLogFilename = "qa_output/sessionLog.txt"

'  First demonstrate a simple application/x-www-form-urlencoded POST

set req = Server.CreateObject("Chilkat.HttpRequest")

'  Set the Charset = "utf-8" to cause URL encoding to use utf-8.
req.Charset = "utf-8"

req.AddParam "name",sb.GetAsString()

req.HttpVerb = "POST"
req.ContentType = "application/x-www-form-urlencoded"

set resp = Server.CreateObject("Chilkat.HttpResponse")
success = http.HttpReq("https://www.chilkatsoft.com/something",req,resp)
If (success = 0) Then
    Response.Write "<pre>" & Server.HTMLEncode( http.LastErrorText) & "</pre>"
    Response.End
End If

'  This is the request that is sent:
'  Notice that utf-8 is used in the query param (the letter 'Æ' is %C3%A6)

'  	POST /something HTTP/1.1
'  	Host: www.chilkatsoft.com
'  	Content-Type: application/x-www-form-urlencoded
'  	Content-Length: 15
'  
'  	name=M%C3%A6RSK

'  ---------------------------------------------------------------
'  Switch to windows-1252

req.Charset = "windows-1252"
req.HttpVerb = "POST"
req.ContentType = "application/x-www-form-urlencoded"

success = http.HttpReq("https://www.chilkatsoft.com/something",req,resp)
If (success = 0) Then
    Response.Write "<pre>" & Server.HTMLEncode( http.LastErrorText) & "</pre>"
    Response.End
End If

'  This is the request that is sent:
'  Notice that windows-1252 is used in the query param (the letter 'Æ' is %E6)

'  	POST /something HTTP/1.1
'  	Host: www.chilkatsoft.com
'  	Content-Type: application/x-www-form-urlencoded
'  	Content-Length: 12
'  
'  	name=M%E6RSK

'  ---------------------------------------------------------------
'  Let's do the same with HttpSReq, switching back to utf-8

req.Path = "/something"
req.HttpVerb = "POST"
req.ContentType = "application/x-www-form-urlencoded"

req.Charset = "utf-8"
success = http.HttpSReq("www.chilkatsoft.com",443,1,req,resp)
If (success = 0) Then
    Response.Write "<pre>" & Server.HTMLEncode( http.LastErrorText) & "</pre>"
    Response.End
End If

'  This is the request that is sent:
'  Notice that utf-8 is used in the query param (the letter 'Æ' is %C3%A6)

'  	POST /something HTTP/1.1
'  	Host: www.chilkatsoft.com
'  	Content-Type: application/x-www-form-urlencoded
'  	Content-Length: 15
'  
'  	name=M%C3%A6RSK

'  ---------------------------------------------------------------
'  Let's do a POST with XML body where the query params are in the HTTP request start line, 
'  and the Content-Type is text/xml where the body of the request is XML.

req.Path = "/something"
req.HttpVerb = "POST"
req.ContentType = "text/xml"
success = req.LoadBodyFromString("<test>123</test>","utf-8")
req.Charset = "utf-8"

'  Remember... our request object still contains the query param added in the above call to AddParam.
success = http.HttpSReq("www.chilkatsoft.com",443,1,req,resp)
If (success = 0) Then
    Response.Write "<pre>" & Server.HTMLEncode( http.LastErrorText) & "</pre>"
    Response.End
End If

'  This is the request that is sent:
'  Notice that utf-8 is used in the query param (the letter 'Æ' is %C3%A6)

'  	POST /something?name=M%C3%A6RSK HTTP/1.1
'  	Host: www.chilkatsoft.com
'  	Content-Type: text/xml
'  	Content-Length: 16
'  
'  	<test>123</test>

%>
</body>
</html>