<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>Steve,</div>
<div><br>
</div>
<div>How about a way to encode/escape spaces? While still allowing unencoded spaces to be changed to +.</div>
<div><br>
</div>
<div>Mike </div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span><Lime>, "Steve D (MNIT)" <<a href="mailto:Steve.Lime@state.mn.us">Steve.Lime@state.mn.us</a>><br>
<span style="font-weight:bold">Date: </span>Wednesday, August 20, 2014 at 12:52 PM<br>
<span style="font-weight:bold">To: </span>"<a href="mailto:mapserver-dev@lists.osgeo.org">mapserver-dev@lists.osgeo.org</a>" <<a href="mailto:mapserver-dev@lists.osgeo.org">mapserver-dev@lists.osgeo.org</a>><br>
<span style="font-weight:bold">Subject: </span>[EXTERNAL] [mapserver-dev] FW: [mapserver-users] WMS request fails when spaces are encoded as plus symbol in query part of URL<br>
<span style="font-weight:bold">Resent-From: </span>Michael Smith <<a href="mailto:michael.smith@usace.army.mil">michael.smith@usace.army.mil</a>><br>
</div>
<div><br>
</div>
<div xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.apple-style-span
        {mso-style-name:apple-style-span;}
span.apple-tab-span
        {mso-style-name:apple-tab-span;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">Devs: Is this a change that we should make for 7.0? Seems reasonable but I’m not sure what the side effects might be.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">Steve<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size: 10pt; font-family: Tahoma, sans-serif;">From:</span></b><span style="font-size: 10pt; font-family: Tahoma, sans-serif;"> Moen, Paul T. [<a href="mailto:pmoen@nd.gov">mailto:pmoen@nd.gov</a>]
<br>
<b>Sent:</b> Wednesday, August 20, 2014 9:44 AM<br>
<b>To:</b> Lime, Steve D (MNIT); <a href="mailto:mapserver-users@lists.osgeo.org">
mapserver-users@lists.osgeo.org</a><br>
<b>Subject:</b> Re: [mapserver-users] WMS request fails when spaces are encoded as plus symbol in query part of URL<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">Steve,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">You are right about the outcome of 1 and 2.  1 encodes the % and 2 throws the following error.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">msBuildWMSLayerURLBase(): One of wms_onlineresource, wms_server_version, wms_name metadata is missing in layer USGS DRG 250k Topo Maps.  Please either provide
 a valid CONNECTION URL, or provide those values in the layer's metadata.\n\n<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">I found the function as you said and <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">I removed the <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"> if (*i == ' ')<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">      *j = '+';<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">    else <o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">from the function then recompiled.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<blockquote style="margin-left:30.0pt;margin-right:0in">
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">char *msEncodeUrlExcept(const char *data, const char except)<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">{<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">  char *hex = "0123456789ABCDEF";<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">  const char *i;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">  char  *j, *code;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">  int   inc;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">  unsigned char ch;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">  for (inc=0, i=data; *i!='\0'; i++)<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">    if (msEncodeChar(*i))<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">      inc += 2;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">  code = (char*)msSmallMalloc(strlen(data)+inc+1);<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">  for (j=code, i=data; *i!='\0'; i++, j++) {<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">    if ( except != '\0' && *i == except ) {<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">      *j = except;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">    } else if (msEncodeChar(*i)) {<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">      ch = *i;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">      *j++ = '%';<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">      *j++ = hex[ch/16];<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">      *j   = hex[ch%16];<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">    } else<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">      *j = *i;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">  }<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">  *j = '\0';<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">  return code;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">}<o:p></o:p></span></p>
</div>
</blockquote>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">Everything works again after a mapserver recompile, install and finally a restart of apache.  Thanks so much for the path to the solution.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span class="apple-style-span"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">Paul Moen</span></span><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><br>
<span class="apple-style-span"><a href="mailto:pmoen@nd.gov" target="_blank">pmoen@nd.gov</a></span><br>
<span class="apple-style-span">701-328-2434</span><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black;">From:
</span></b><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black;"><Lime>, "Steve D (MNIT)" <<a href="mailto:Steve.Lime@state.mn.us">Steve.Lime@state.mn.us</a>><br>
<b>Date: </b>Wednesday, August 20, 2014 at 12:41 AM<br>
<b>To: </b>Paul Moen <<a href="mailto:pmoen@nd.gov">pmoen@nd.gov</a>>, "<a href="mailto:mapserver-users@lists.osgeo.org">mapserver-users@lists.osgeo.org</a>" <<a href="mailto:mapserver-users@lists.osgeo.org">mapserver-users@lists.osgeo.org</a>><br>
<b>Subject: </b>RE: [mapserver-users] WMS request fails when spaces are encoded as plus symbol in query part of URL<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-family: Tahoma, sans-serif; color: black;">Hmmm... Nice backwards compatibility ESRI. The +'s seem to still be quite legal (<a href="http://tools.ietf.org/html/rfc3986" target="_blank">http://tools.ietf.org/html/rfc3986</a> and
 other references) in the query string (but not the path). I don't have access to test and I'm guessing these ideas won't work but they might be worth a quick try:</span><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family: Tahoma, sans-serif; color: black;">  1) Try encoding the wms_name in the metadata: "wms_name" "Topomap%20DRG%20250k"</span><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family: Tahoma, sans-serif; color: black;">  2) Don't set the wms_name in the metadata but add it to the connection: CONNECTION "<a href="http://ndgishub.nd.gov/arcgis/services/All_Elevation/MapServer/WMSServer?LAYERS=Topomap%20DRG%20250k&">http://ndgishub.nd.gov/arcgis/services/All_Elevation/MapServer/WMSServer?LAYERS=Topomap%20DRG%20250k&</a>"</span><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family: Tahoma, sans-serif; color: black;">I'm betting MapServer will encode the %'s in 1 and throw an error in 2. Otherwise you could hack the MapServer source. Function is called msEncodeUrlExcept() in mapstring.c you
 can see the section to change starting at line 1138 in git master (<a href="https://github.com/mapserver/mapserver/blob/master/mapstring.c)." target="_blank">https://github.com/mapserver/mapserver/blob/master/mapstring.c)</a></span><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family: Tahoma, sans-serif; color: black;">Maybe it's worth making this change as part of 7.0?</span><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family: Tahoma, sans-serif; color: black;">Steve</span><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p> </o:p></span></p>
<div>
<div class="MsoNormal" align="center" style="text-align:center"><span style="color:black">
<hr size="2" width="100%" align="center">
</span></div>
<div id="divRpF434791">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">From:</span></b><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><a href="mailto:mapserver-users-bounces@lists.osgeo.org">mapserver-users-bounces@lists.osgeo.org</a>
 [<a href="mailto:mapserver-users-bounces@lists.osgeo.org">mapserver-users-bounces@lists.osgeo.org</a>] on behalf of Moen, Paul T. [<a href="mailto:pmoen@nd.gov">pmoen@nd.gov</a>]<br>
<b>Sent:</b> Tuesday, August 19, 2014 4:56 PM<br>
<b>To:</b> <a href="mailto:mapserver-users@lists.osgeo.org">mapserver-users@lists.osgeo.org</a><br>
<b>Subject:</b> [mapserver-users] WMS request fails when spaces are encoded as plus symbol in query part of URL</span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="color:black">Hi all,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">We are consuming WMS services hosted by ESRI ArcGIS Server 10.0.  The server was upgraded to ArcGIS Server 10.2.2 and we no longer can access layer names with spaces.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">This is the server’s capabilities.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><a href="http://ndgishub.nd.gov/arcgis/services/All_Elevation/MapServer/WMSServer?request=GetCapabilities&service=WMS">http://ndgishub.nd.gov/arcgis/services/All_Elevation/MapServer/WMSServer?request=GetCapabilities&service=WMS</a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">This is the layer I am using.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="color:black">LAYER<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"># DEBUG 5<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">CONNECTIONTYPE WMS<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">CONNECTION "<a href="http://ndgishub.nd.gov/arcgis/services/All_Elevation/MapServer/WMSServer?">http://ndgishub.nd.gov/arcgis/services/All_Elevation/MapServer/WMSServer?</a>"<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">METADATA<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">"wms_name" "Topomap DRG 250k"<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">"wms_format" "image/png"<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">"wms_server_version" "1.1.1"<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">"wms_srs" "EPSG:2266"<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">END<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">TYPE RASTER<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">STATUS OFF<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">NAME "USGS DRG 250k Topo Maps"<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">END<o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">Mapserver encodes this request as follows.  Notice that the layer name, which is ‘Topomap DRG 250k’, is encoded with the spaces becoming the ‘+’ character.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><a href="http://ndgishub.nd.gov/arcgis/services/All_Elevation/MapServer/WMSServer?LAYERS=Topomap+DRG+250k&REQUEST=map&WMTVER=1.0.0&SERVICE=WMS&FORMAT=image/png&STYLES=&HEIGHT=1146&SRS=EPSG:2266&WIDTH=1271&BBOX=1906240.15992838,596656.333359479,2119730.85012732,789150.692893686&TRANSPARENT=TRUE&EXCEPTIONS=INIMAGE">http://ndgishub.nd.gov/arcgis/services/All_Elevation/MapServer/WMSServer?LAYERS=Topomap+DRG+250k&REQUEST=map&WMTVER=1.0.0&SERVICE=WMS&FORMAT=image/png&STYLES=&HEIGHT=1146&SRS=EPSG:2266&WIDTH=1271&BBOX=1906240.15992838,596656.333359479,2119730.85012732,789150.692893686&TRANSPARENT=TRUE&EXCEPTIONS=INIMAGE</a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">This returns the error in an image that says “Parameter ‘layers’ contains unacceptable layer names.”<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">When I replace the + in the layer name with %20, LAYERS=Topomap+DRG+250k become LAYERS=Topomap%20DRG%20250k and the request becomes the following.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><a href="http://ndgishub.nd.gov/arcgis/services/All_Elevation/MapServer/WMSServer?LAYERS=Topomap%20DRG%20250k&REQUEST=map&WMTVER=1.0.0&SERVICE=WMS&FORMAT=image/png&STYLES=&HEIGHT=1146&SRS=EPSG:2266&WIDTH=1271&BBOX=1906240.15992838,596656.333359479,2119730.85012732,789150.692893686&TRANSPARENT=TRUE&EXCEPTIONS=INIMAGE">http://ndgishub.nd.gov/arcgis/services/All_Elevation/MapServer/WMSServer?LAYERS=Topomap%20DRG%20250k&REQUEST=map&WMTVER=1.0.0&SERVICE=WMS&FORMAT=image/png&STYLES=&HEIGHT=1146&SRS=EPSG:2266&WIDTH=1271&BBOX=1906240.15992838,596656.333359479,2119730.85012732,789150.692893686&TRANSPARENT=TRUE&EXCEPTIONS=INIMAGE</a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">That request works.  Obviously, ESRI is no longer decoding + as a space and therefore does not recognize the layer name with spaces.  <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">Is there any way I can have mapserver encode all characters using percent-encoding, or at least encode spaces as %20 instead of a + character.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">Thanks,<o:p></o:p></span></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><span class="apple-style-span"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;">Paul Moen</span></span><span style="font-size: 10.5pt; font-family: Calibri, sans-serif; color: black;"><br>
<span class="apple-style-span"><a href="mailto:pmoen@nd.gov" target="_blank">pmoen@nd.gov</a></span><br>
<span class="apple-style-span">701-328-2434</span></span><span style="font-size: 13.5pt; font-family: Helvetica, sans-serif; color: black;"><br>
<br>
<br>
</span><span style="color:black"><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</span>
</body>
</html>