Via Lattanzio,23 Milano
+39 02 36592025
info@synaptica.info

Charset Firebird 3.0 [malformed string error]

Charset Firebird 3.0 [malformed string error]

Charset encoding in Firebird 3.0, come è noto in un campo di una tabella di tipo varchar o char è possibile definire il tipo di encoding gestito, oppure non specificarlo.

Tramite Firebird è possibile convertire il contenuto di tale campo da un charset ad un’altro semplicemente con l’istruzione SQL “cast”.

Facciamo un esempio, nella mia tabella “tipologie_articoli”, ho un campo “descrizione” a cui non avevo specificato l’encoding e di base ho importato dei dati in formato ISO8859_1, al momento dello sviluppo del mio servizio Web mi accorgo che la mia applicazione è tutta omogenea in UTF8 e non voglio a livello applicativo fare la conversione. A questo punto posso eseguire la segente istruzione per convertire il contenuto del campo “DESCRIZONE” da ISO8859_1 a UTF8.

Esempio conversione da ISO8859-1 a UTF-8 :

Se avessimo invece definito il campo “DESCRIZIONE” con il charset UTF8 al momento dell’importazione dei dati in formato ISO8859_1 avrebbe dato l’errore “malformed string error”.