Come effettuare URLEncode di una stringa in formato UTF8 con Visual Basic 6

How to URLEncode in UTF8 with Visual Basic 6

Visual Basic 6 (VB6) al giorno d’oggi è diventato quasi una creatura mitologica: non importa quanto tu possa cercare di eliminarlo dal proprio arsenale di strumenti di sviluppo, prima o poi torna sempre a perseguitarti, nella maggior parte dei casi sotto le sembianze di un vecchio software gestionale e/o di utilità varia che svolge un numero di funzioni magari estremamente limitato, ma comunque rilevante nell’economia aziendale. Quando questo software smette di funzionare, si rende ahimé necessario riesumare l’ambiente di sviluppo e correggere il problema.

Oggi in ufficio ci è toccato assistere a questa ennesima resurrezione, che ha riguardato un vecchio client software che ancora viene utilizzato – tra le altre cose – per svolgere alcune saltuarie request HTTP a servizi esterni parimenti obsoleti. Nello specifico, il problema era legato a una vecchia funzione  URLEncode nascosta da qualche parte del codice sorgente:

Questa funzione, che funziona bene lavorando con stringhe in formato Windows-1252, presenta non pochi problemi quando occorre produrre un risultato in formato UTF8. Ad esempio, il carattere À verrà convertito in %C0, che non sarà considerato valido a seguito di un URLDecode su un sistema UTF8.

Per correggere il problema abbiamo rapidamente messo in piedi il seguente workaround: si tratta in buona sostanza di un convertitore di formato da UTF16 a UTF8 che precede l’URLEncode vero e proprio, rendendolo compatibile con la maggior parte delle funzionalità URLDecode native dei principali framework in uso di recente (PHP, ASP.NET, JAVA e così via).

 

Se vi siete imbattuti in questo articolo, è probabile che abbiate anche voi a che fare un problema del genere: ci auguriamo che questo contributo possa aiutarvi a risolverlo rapidamente.

Alla prossima!

 

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.