From ilug-admin@linux.ie Wed Aug 28 10:48:11 2002 Return-Path: Delivered-To: zzzz@localhost.netnoteinc.com Received: from localhost (localhost [127.0.0.1]) by phobos.labs.netnoteinc.com (Postfix) with ESMTP id 3DDB64415A for ; Wed, 28 Aug 2002 05:47:34 -0400 (EDT) Received: from phobos [127.0.0.1] by localhost with IMAP (fetchmail-5.9.0) for zzzz@localhost (single-drop); Wed, 28 Aug 2002 10:47:34 +0100 (IST) Received: from lugh.tuatha.org (root@lugh.tuatha.org [194.125.145.45]) by dogma.slashnull.org (8.11.6/8.11.6) with ESMTP id g7RKXmZ24942 for ; Tue, 27 Aug 2002 21:33:48 +0100 Received: from lugh (root@localhost [127.0.0.1]) by lugh.tuatha.org (8.9.3/8.9.3) with ESMTP id VAA15298; Tue, 27 Aug 2002 21:32:40 +0100 Received: from hibernia.jakma.org (hibernia.clubi.ie [212.17.32.129]) by lugh.tuatha.org (8.9.3/8.9.3) with ESMTP id VAA15263 for ; Tue, 27 Aug 2002 21:32:32 +0100 Received: from fogarty.jakma.org (fogarty.jakma.org [192.168.0.4]) by hibernia.jakma.org (8.11.6/8.11.6) with ESMTP id g7RKWT715112; Tue, 27 Aug 2002 21:32:29 +0100 Received: from localhost (paul@localhost) by fogarty.jakma.org (8.11.6/8.11.6) with ESMTP id g7RKWRn04752; Tue, 27 Aug 2002 21:32:27 +0100 X-Authentication-Warning: fogarty.jakma.org: paul owned process doing -bs Date: Tue, 27 Aug 2002 21:32:26 +0100 (IST) From: Paul Jakma X-X-Sender: paul@fogarty.jakma.org To: David Neary Cc: ILUG list Subject: Re: [ILUG] converting strings of hex to ascii In-Reply-To: <20020827182940.A6217@wanadoo.fr> Message-Id: X-Nsa: iraq saddam hammas hisballah rabin ayatollah korea vietnam revolt mustard gas X-Dumb-Filters: aryan marijuiana cocaine heroin hardcore cum pussy porn teen tit sex lesbian group MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: ilug-admin@linux.ie Errors-To: ilug-admin@linux.ie X-Mailman-Version: 1.1 Precedence: bulk List-Id: Irish Linux Users' Group X-Beenthere: ilug@linux.ie On Tue, 27 Aug 2002, David Neary wrote: > > Actually the following would be in some way sensible: > > echo -e "`echo "$enc" | sed 's/%\([0-9a-fA-F]\{2,2\}\)/\\\x\1/g'`" > > Why {2,2}? Why not {2}? no idea. the above was something along the lines i was attempting, once i realised it was a straight swap. but i couldnt get awk's gensub to insert the \x for %'s and ='s. anyway, in the end i found something on the internet and adapted it: function decode_url (str, hextab,i,c,c1,c2,len,code) { # hex to dec lookup table hextab ["0"] = 0; hextab ["8"] = 8; hextab ["1"] = 1; hextab ["9"] = 9; hextab ["2"] = 2; hextab ["A"] = 10; hextab ["3"] = 3; hextab ["B"] = 11; hextab ["4"] = 4; hextab ["C"] = 12; hextab ["5"] = 5; hextab ["D"] = 13; hextab ["6"] = 6; hextab ["E"] = 14; hextab ["7"] = 7; hextab ["F"] = 15; decoded = ""; i = 1; len = length (str); while ( i <= len ) { c = substr (str, i, 1); # check for usual start of URI hex encoding chars if ( c == "%" || c == "=" ) { if ( i+2 <= len ) { # valid hex encoding? c1 = toupper(substr(str, i+1, 1)); c2 = toupper(substr(str, i+2, 1)); if ( !(hextab [c1] == "" && hextab [c2] == "") ) { code = 0 + hextab [c1] * 16 + hextab [c2] + 0 c = sprintf ("%c", code) i = i + 2 } } # + is space apparently } else if ( c == "+" ) { c = " " } decoded = decoded c; ++i; } return decoded } > Cheers, > Dave. > PS the late reply is because the footer on the original mail (If > you received this mail in error yadda yadda) got caught in my > spam filter, and ended up in my junkmail directory. he he... might not have been the footer - check my headers. :) regards, -- Paul Jakma paul@clubi.ie paul@jakma.org Key ID: 64A2FF6A warning: do not ever send email to spam@dishone.st Fortune: One nuclear bomb can ruin your whole day. -- Irish Linux Users' Group: ilug@linux.ie http://www.linux.ie/mailman/listinfo/ilug for (un)subscription information. List maintainer: listmaster@linux.ie