Encoding

4.5.2
L'encoding è una pratica necessaria e continua soprattutto all'interno del settore web.
Le funzioni in questa area risolvono tutte le problematiche legate all' encoding e al decoding di dati scritti in vari formati.

Motivi dell'encoding

Durante lo sviluppo di un programma può renderesi necessario effettuare 1 o più encoding di un stringa.
Esempio una stringa che necessita di essere visualizzata, in html ha bisogno di una codifica HTML ISO-8959-1 oppure UTF8.
E viceversa una stringa che arriva in un formato HTML ha bisogno di essere convertita in UTF8 oppure in ANSI per essere salvata in DB.
Durante il salvataggio ha bisogno di essere codifica per SQL in modo da evitare errore di sintassi nella query. (gli apici ad esempio).

Per permettere queste codifiche vengono fornite un set di funzioni che ritornarno il dato codificato/decodificato.
All'interno di questo funzioni si indica il tipo di decodifica usando una macro composta da due parti: xx_yyyy

xx è se si vuole la decodifica o codifica e il valore può essere :

yyyy è il tipo di decodifica, come indicato in tabella:

Macro Note
xx_HTML HTML ISO-8859-1 Es (€) Converte TUTTO <,>,& e anche i ritorni a capo in <br />
xx_HTMLS HTML ISO-8859-1 Converte solo i caratteri superiori a 127
xx_HTML_XML HTML ISO-8859-1 Converte solo < > & per styringe da usare con XML
xx_ISO_LATIN1 HTML ISO-8859-1 Converte in HTML eccetto i ritorni a capo
xx_WTC Wide To Char (converte perdendo il secondo byte un Widechar < > Char : Nessun encoding
xx_ANSI Conversione da Widechar ad ANSI (dove possibile)
xx_UTF8 UTF-8 usato in Xml ed adottato da Google
xx_SQL Mette il doppio apice dove serve -SOLO StrEncode()-
xx_SQLSTR Come sopra, ma ritorna il risultato "quotato" e se il valore passato è NULL, ritorna NULL senza le virgolette.
xx_URL %20 URL Internet
xx_BASE64 Base 64
xx_CFORMAT Codifica in formato c o javascript aggiungendo i backslash prima di apici etc. e usa il \n \t


Esempio

Se volete quindi una codifica in URL di una stringa potete fare in questo modo
  BYTE *psz;
  psz=strEncode("Test di prova",SE_URL,NULL);
  printf("%s",psz);
  EhFree(psz);

Il risultato sarà Test%20di%20Prova.
Attenzione
Tutte le funzioni di encoding allocano memoria che va liberata cone EhFree
See also:
Easyhand C/C++: Encoding | Last modified: 24/03/2011 07.25.53 Europe/Rome | #1.324
P.. 341
Easyhand C/C++
Una mano alle tue idee.
Privacy Policy