Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: Marmar - 17 Luglio 2011, 16:26:24

Titolo: Caratteri speciali unicode, non tutti vengono letti
Inserito da: Marmar - 17 Luglio 2011, 16:26:24
Riciao a tutti  :ciao:
visto che l'ultima volta avete risolto un mio problema in meno di un'ora, mi affido nuovamente alla vostra esperienza  ;D

nel mio form ho una textbox che dovrebbe essere in grado di leggere caratteri degli alfabeti antichi (latino arcaico, etrusco, greco, lineare B per esempio). Ho cercato in questo forum sia qui:

http://www.gambas-it.org/smf/index.php?topic=583.msg5777;topicseen#msg5777 (http://www.gambas-it.org/smf/index.php?topic=583.msg5777;topicseen#msg5777)

che qui:

http://www.gambas-it.org/smf/index.php?topic=442.msg3943;topicseen#msg3943 (http://www.gambas-it.org/smf/index.php?topic=442.msg3943;topicseen#msg3943)

il problema è che i metodi qui usati non leggono alcuni unicode, mentre altri sì. Posto i codici che ho provato fin'ora:

Codice: [Seleziona]
unicode.Text = String.Chr(66304) 'questo carattere che è corsivo antico, non si vede: al suo posto vengono i due rettangolini vuoti
unicode.Text &= String.Chr(935) 'questo carattere, che è greco, si vede benissimo

ho provato anche a impostare come font di base del mio progetto uno che è sicuramente in grado di leggere entrambi i caratteri, eppure il primo non si vede. So che esiste anche String.Code(String as String), che vuole il UTF-8, ma ogni tentativo di usare questo comando mi dava errore, più esattamente non riesco a capire cosa va nelle parentesi tonde.

P.S. domanda extra: siccome vorrei avere gambas aggiornatissimo ma ben funzionante, conviene passare a gambas3 o è meglio aspettare che sia stabile? Se sì posso importare il progetto senza problemi?

Gratias uobis
Titolo: Re: Caratteri speciali unicode, non tutti vengono letti
Inserito da: vuott - 02 Dicembre 2011, 01:30:39
unicode.Text = String.Chr(66304) 'questo carattere che è corsivo antico, non si vede: al suo posto vengono i due rettangolini vuoti

...a me questo codice, invece, mi restituisce semplicemente una "a" maiuscola: A .
Ad ogni modo, effettivamente non tutti i caratteri previsti da Unicode vengono mostrati. Ciò probabilmente è dovuto dal fatto che la quantità di caratteri in Unicode viene incrementata di anno in anno con nuove versioni; e ciò lascia pensare che i sistemi non riescono ad aggiornare la versione Unicode implementata.

So che esiste anche String.Code(String as String), che vuole il UTF-8, ma ogni tentativo di usare questo comando mi dava errore, più esattamente non riesco a capire cosa va nelle parentesi tonde.
Va inserito il carattere, di cui vuoi conoscere il codice Unicode. Esempio: string.code("à")

Altro esempio:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

  Dim a As String
  Dim b As Integer

 ' La seguente funzione restituisce il carattere "Delta" maiuscolo:
    a = String.Chr(&0394)

 ' La seguente funzione restituisce il codice esadecimale Unicode del Delta maiuscolo,
 ' ...dal quale siamo partiti (&0394):
    b = String.Code(a)

 ' mostra il carattere "Delta" maiuscolo:
  Print a

' mostra il codice esadecimale Unicode del Delta maiuscolo:
  Print Hex(b)

End


Per un'ampia panoramica sui codici UNICODE: http://www.unicode.org/charts/ (http://www.unicode.org/charts/) .

Vedi anche la Wiki: http://www.gambas-it.org/wiki/index.php/Uso_di_Unicode_con_gli_oggetti_di_testo (http://www.gambas-it.org/wiki/index.php/Uso_di_Unicode_con_gli_oggetti_di_testo)



Gratias uobis
Et tibi.