mercoledì 7 settembre 2016

Lavorare con testi che utlizzano codifiche differenti

Quando scriviamo un testo le lettere che vediamo sullo schermo sono per il computer una sequenza di bit, e a seconda della lingua o del paese, quei bit possono essere male interpretati.
Quando sono nati i computer, inizialmente erano stati pensati solo i 255 caratteri ASCII, ma erano stati pensati solo per la lingua inglese e mancavano dei caratteri accentati di altre lingue o altri caratteri speciali; ad esempio Ą, Ɛ, ƺ, Љ, א, ठी. Per questo motivo sono nati delle nuove codifiche che utilizzano più caratteri e alcune sono pensate per alcune lingue, altre si adattano ad altre lingue.
Tutto ciò ha portato ad una grande confusione, per questo motivo livecode supporta la maggior parte dei caratteri nativamente; ma se dovete interfacciarvi con altri programmi che supportano solo alcuni caratteri come fate?
Per questo motivo per fortuna c'è la funzione codepointToNum() che trasforma il carattere in un numero, i numeri sono universalmente accettati da tutte le codifiche e quindi potete inviarlo a qualunque programma.
Ecco due funzione per importare ed esportare testi molto utili:
per esportare:

function stringtonums tString
   repeat for each char tChar in tString
      put CodepointToNum(tChar) & comma after temp
   end repeat
   return temp
end stringtonums
per importare il testo esportato con stringToNums():
function numsToString tString
   repeat for each item tChar in tString
      put numToCodepoint(tChar) after temp
   end repeat
   return temp
end numsTostring