Article

URI:Encode works differently in 11.7; encodes the equal sign.

« Go Back

Information

 
Article Number000081797
EnvironmentProduct: OpenEdge
Version: 11.7
OS: Windows
Question/Problem Description
Using OpenEdge 11.6.3, the following code snippet:

using OpenEdge.Net.UriEncodingTypeEnum.
message OpenEdge.Net.URI:Encode("test":U + "=":U, UriEncodingTypeEnum:Query) view-as alert-box.


Outputs the following:
test%3D

Using OpenEdge 11.7 the following code snippet:

using OpenEdge.Net.UriEncodingTypeEnum.
message OpenEdge.Net.URI:Encode("test":U + "=":U, UriEncodingTypeEnum:Query) view-as alert-box.


Outputs the following:
test=
 
Steps to Reproduce
Clarifying Information
Error Message
Defect/Enhancement Number
Cause
This is expected behavior. 

In OpenEdge 11.7 the behavior of the URI:Encode method was changed to be more in line with the RFC 3986: https://tools.ietf.org/html/rfc3986#page-23.

The following are legal characters in a query string and must not be percent encoded. The equal sign is included in the sub-delims:
 
pct-encoded   = "%" HEXDIG HEXDIG
unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"
sub-delims    = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"
query       = *( pchar / "/" / "?" )
 
Resolution
Workaround
To get results from OpenEdge.Net.URI:Encode, in OpenEgde 11.7 to be the same as those seen in OpenEdge 11.6.3, change the code as follows:
message
       OpenEdge.Net.URI:Encode("test=":U, UriEncodingTypeEnum:Defaultskip
       view-as alert-box
.

Change UriEncodingTypeEnum:Query to UriEncodingTypeEnum:Default.

 
Notes
References to other Documentation:

RFC 3986 Copyright (C) The Internet Society (2005).
https://tools.ietf.org/html/rfc3986#page-23 
Attachment 
Last Modified Date6/1/2017 5:08 PM
Disclaimer

The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.



Feedback
 
Was this article helpful?

   

Your feedback is appreciated.

Please tell us how we can make this article more useful. Please provide us a way to contact you, should we need clarification on the feedback provided or if you need further assistance.

Characters Remaining: 1025