Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] Gestione con caratteri cinesi

Ciao,
� subentrata la necessit�, in un progetto in VB6, di gestire anche i 
caratteri cinesi in alcune form. In pratica il programma dovr� essere 
installato su un PC in Cina ed alcuni controlli (textbox, labels e 
griglie) dovranno supportare l'input/output con gli ideogrammi.
 
So che VB6 gestisce internamente l'unicode, quindi qui non ci 
"sarebbero" problemi. L'ostacolo sono i controlli, che invece non lo 
supportano, e mostrano "????".
 
Con Google ho letto di tutto e di pi�, ed ora ho le idee pi� confuse di 
prima. Ho visto che dal componente Forms 2.0 di Office si possono 
ricavare controlli "unicode aware", ma la DLL fm20.dll non � 
ridistribuibile. Nel senso che ci vuole Office installato.
Tra l'altro forms 2.0 non ha il controllo Griglia, che mi servirebbe.
So che comunque ci sono anche soluzioni commerciali.
 
Insomma ho un gran casino in testa...
Qualcuno ci � passato, mantenendo il progetto in VB6 (so che .NET 
supporta l'unicode, ma devo restare in VB6) e mi pu� descrivere per 
sommi capi come ha risolto? Anche se con componenti a pagamento.
 
Grazie!

 risolto? Anche se con componenti a pagamento.
 
Oramai parliamo del giurassico informatico, comunque noi abbiamo un 
software (che in realtï¿œ ï¿œ ancora in uso e su cui facciamo manutenzione) 
che gestisce senza problemi il cirillico.
Per l'inserimento del carattere, ci sono delle tastierine virtuali, 
roba Microsoft, che sanno usare loro e su cui non metto mano.
Per i controlli, in particolare TextBox, a memoria direi che abbiamo 
usato le Forms2, e non ricordo assolutamente ci fossero problematiche 
di ridistribuzione, nï¿œ che richiedessero Office.
Va detto, su quest'ultimo punto, che i client su cui viene usato hanno 
tutti Office installato, quindi in effetti potrei avere dimenticato 
questo aspetto perchï¿œ 'non fastidioso'.
 
Alberto
 
 

 questo aspetto perchï¿œ 'non fastidioso'.
 
Ok, diciamo che sulla macchina ho a disposizione i controlli Form 2.0, e 
diciamo che per ora la griglia non rappresenta un problema.
 
In pratica sulla Textbox devo poter scrivere in cinese, devo salvare su 
DB, e devo poter recuperare da DB impostando la Textbox.
 
Ho fatto diverse prove, ma non riesco a capire come far funzionare in 
input ed output sto coso...
 
Ho copiato/incollato del testo in cinese da un file excel, e fin qua 
tutto bene. Quando vado a leggere il contenuto della textbox, Text1.test 
contiene tutti punti di domanda, anzichï¿œ caratteri unicode...
 
Boh??

 tutti punti di domanda, anzichï¿œ caratteri unicode...
 
Scusa, ma cosa intendi con "Text1.text contiene tutti punti di 
domanda"?
Se hai appena detto che il copiaincolla funziona?
Al limite potrï¿œ essere il visualizzatore che utilizzi per visualizzare 
Text1.Text a non supportare l'unicode e a metterti i punti di domanda.
Ad esempio, sicuramente non potrai utilizzare il visualizzatore 
incorporato nell'Ide, cioï¿œ mica potrai metterti con la freccina del 
mouse sopra a text1.text e sperare di vedere la stessa cosa del 
controllo.
 
Pongo un quesito: ma tu sai cos'ï¿œ un Unicode?
 
Alberto
 
 

 Pongo un quesito: ma tu sai cos'ï¿œ un Unicode?
 
Vagamente... una o due coppie di bytes (UTF-8 o UTF-16) che assieme 
identificano un carattere di un Codepage diverso dall'Occidentale.
 
Per me questo ï¿œ un terreno inesplorato, nel quale sto iniziando a 
muovermi (a fatica, come vedi...).

 identificano un carattere di un Codepage diverso dall'Occidentale.
 
Grossomodo ci siamo.
Adesso, ipotizzando di essere in un sistema dove ogni carattere sia una 
coppia di Byte, per la legge della non comprenetrazione dei solidi, una 
sequenza di coppie di byte non puï¿œ entrare in una stringa non unicode.
 
Se rileggi il mio messaggio, vedrai che non ho mai usato il termine 
'stringa' riferito alla variabile in grado di 'comunicare' col texbox 
di forms2.
Bensï¿œ ho usato il termine Stream Unicode. Che stream contiene il 
concetto di movimento, infatti ï¿œ con uno stream binario che si comunica 
col database quando bisogna passare roba unicode (a meno, ovviamente e 
come dicevo, di non transcodificarla in esadecimale e quindi 
appiattirla a non unicode).
Quando non parliamo di flusso, ma di memorizzazione (=variabile), gli 
unicode vanno salvati in array di byte, non in stringhe.
 
Ciao
 
Alberto
 
 

From: Albe Vï¿œ Date: 20/07/2012 15:45:

Azz... questo dell'array di byte ï¿œ un nuovo tassello, che mi spiega 
anche il perchï¿œ di un paio di esempi che avevo trovato durante le mie 
ricerche. Cerco in questa direzione.
 
Perï¿œ mi sorge un altro dubbio: scrivo nel DB, costruisco l'istruzione 
SQL con una stringa e gliela do in pasto. Devo quindi trascodificarla in 
HEX ?