Code archives/Networking/EncodeURLValue() - Function used to encode the value parameter in a URL's query string.
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| This function is used to encode the value parameter in a URL's query string. eg. For the URL: https://www.google.com/search?client=opera You would use the function to encode the 'opera' part if you suspected that it contained illegal characters. The 'value$' parameter should hold the string value to be encoded. The encoded version of the value string is returned. By default the function encodes everything except 0 to 9, A to Z, a to z, and the characters: -_.~ and !'()* The optional 'strict' parameter can be set to True if you also want to encode the characters: !'()* These characters don't do any harm, but aren't strictly allowed. Reference Links:- https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent http://en.wikipedia.org/wiki/Query_string http://tools.ietf.org/html/rfc3986 | |||||
Function EncodeURLValue$( value$, strict = False )
; This function is used to encode the value parameter in a URL's query string.
; eg. For the URL: https://www.google.com/search?client=opera
; You would use the function to encode the 'opera' part if you suspected
; that it contained illegal characters.
; The 'value$' parameter should hold the string value to be encoded.
; The encoded version of the value string is returned.
; By default the function encodes everything except 0 to 9, A to Z, a to z,
; and the characters: -_.~ and !'()*
; The optional 'strict' parameter can be set to True if you also want to
; encode the characters: !'()*
; These characters don't do any harm, but aren't strictly allowed.
; Reference Links:-
; https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent
; http://en.wikipedia.org/wiki/Query_string
; http://tools.ietf.org/html/rfc3986
Local encode, i, c, output$, l = Len( value$ )
For i = 1 To l
c = Asc( Mid( value$, i, 1 ) )
; If c is numeric or is either uppercase or lowercase alphabetic then don't encode.
If ( ( c > 47 ) And ( c < 58 ) ) Or ( ( c > 64 ) And ( c < 91 ) ) Or ( ( c > 96 ) And ( c < 123 ) )
encode = False
Else
encode = True
; Otherwise check if it's still an allowed character.
Select c
Case 32 : encode = False : c = 43 ; Convert space to a plus sign.
Case 46 : encode = False ; .
Case 45 : encode = False ; -
Case 95 : encode = False ; _
Case 126 : encode = False ; ~
Default
; These characters don't do any harm, but aren't strictly allowed.
If Not strict
Select c
Case 39 : encode = False ; '
Case 33 : encode = False ; !
Case 40 : encode = False ; (
Case 41 : encode = False ; )
Case 42 : encode = False ; *
End Select
EndIf
End Select
EndIf
If encode
output$ = output$ + "%" + Right(Hex$( c ), 2 )
Else
output$ = output$ + Chr( c )
EndIf
Next
Return output$
End Function
; *** DEMO ***
Graphics 800, 600, 0, 2
Print EncodeURLValue( "012789-ABCXYZ-abcxyz" )
Print
Print EncodeURLValue( "/:-@[-`{-#$%&^{|}" )
Print
Print EncodeURLValue( " .-_~" )
Print
Print EncodeURLValue( "'!()*" )
Print
Print EncodeURLValue( "'!()*", True )
Print
Print
url$ = "https://www.google.com/search?q="
value$ = "Blitz Basic Code Archive"
Print url$ + EncodeURLValue( value$ )
WaitKey : End |
Comments
| ||
| I have done a lot of similar workings particularly for other site searches such as imdb and Netflix etc. I should try to dig out my code once I am reunited with my computer. There was a lot more versatility in that many searches link words with + and the % character acts as a control to provide ascii values for the otherwise invalid characters. Also, depending on the search tool, there may be various qualifying criteria either beforehand or afterwords. |
Code Archives Forum