FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour url encoder/decoder
Posts: 1091
Joined: Thu Nov 17, 2005 11:08 AM
url encoder/decoder
Posted: Thu Mar 03, 2016 09:50 AM
Dear friends,

I need a function to encode decode url

http%3A%2F%2F127.0.0.1 <<<< >>>>> http://127.0.0.1

Where Can I find it?

Many thanks
Marco
Marco Boschi
info@marcoboschi.it
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Re: url encoder/decoder
Posted: Thu Mar 03, 2016 10:30 AM
In our best friend Harbour!

HB_URLENCODE()
HB_URLDECODE()

It happen that I am using a _very_ old version of Harbour in a legacy project, so I had to write my own funcs:

Code (fw): Select all Collapse
#define URL_CODE { '%21', '%2A', '%27', '%28', '%29', '%3B', '%3A', '%40', '%26', '%3D', '%2B', '%24', '%2C', '%2F', '%3F', '%25', '%23', '%5B', '%5D' }
#define URL_CHAR { '!'  , '*'  , "'"  , "("  , ")"  , ";"  , ":"  , "@"  , "&"  , "="  , "+"  , "$"  , ","  , "/"  , "?"  , "%"  , "#"  , "["  , "]"   }

FUNCTION urlencode( cString )
   LOCAL cResult, i, nAt, Ch

   cResult:= ''

   FOR i:= 1 To LEN( cString )
      IF ( nAT := aScan( URL_CHAR, Ch:= SubStr( cString, i, 1 ) ) ) > 0
         cResult+= URL_CODE[ nAt ]
      ELSE
         cResult+= Ch
      ENDIF
   NEXT

RETURN cResult

FUNCTION urldecode( cString )
   LOCAL cResult, i, nAt, cH

   cResult:= ''

   FOR i:= 1 To LEN( cString )
      IF ( nAT := aScan( URL_CODE, Ch:= SubStr( cString, i, 3 ) ) ) > 0
         cResult+= URL_CHAR[ nAt ]
         i+= 2
      ELSE
         cResult+= Left( Ch, 1 )
      ENDIF
   NEXT

RETURN cResult

Best regards
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 1091
Joined: Thu Nov 17, 2005 11:08 AM
Re: url encoder/decoder
Posted: Thu Mar 03, 2016 11:04 AM

Many Thanks

Marco

:D

Marco Boschi
info@marcoboschi.it
Posts: 1487
Joined: Tue Jun 14, 2016 07:51 AM
Re: url encoder/decoder (Still Up to date ?)
Posted: Sat Apr 15, 2017 09:40 AM

Hello,

It seems that there are encode functions like :

HB_URLENCODE()
HB_URLDECODE()

I the older post above they say that Harbour is older (to old??) and there is a alternatif function written.

I need to use these functions, but anno 04/2017 : witch one do you prefer ?

Marc

Marc Venken

Using: FWH 23.08 with Harbour
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Re: url encoder/decoder
Posted: Sat Apr 15, 2017 07:02 PM

Hi Marc,

the native Harbour ones, without any doubt! The are updated with the rtl, written in C so the are faster. I posted the old ones just in case, for really old projects it may be useful.

Best regards

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: url encoder/decoder
Posted: Mon Sep 30, 2024 02:56 PM
Carlos Mora wrote:Hi Marc,

the native Harbour ones, without any doubt! The are updated with the rtl, written in C so the are _faster_. I posted the old ones just in case, for really old projects it may be useful.

Best regards
Hi,

Is there any library to add my mak file.
It says,
Code (fw): Select all Collapse
Portal_UYAP.obj : error LNK2001: unresolved external symbol _HB_FUN_HB_URLENCODE
Thanks.
Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: url encoder/decoder
Posted: Mon Sep 30, 2024 03:02 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341

Continue the discussion