Newsgroup: it.comp.software.database
Titolo: Caratteri orientali con Mysql, tecnica htmlencode

Ragazzi ho un serio problema e non so più a chi 
rivolgermi :-( 
Mi hanno chiesto di realizzare una bacheca che consenta di 
memorizzare nel database, anche i messaggi che vengono 
scritti in caratteri orientali.(es. giapponese, cinese). 
Io uso mysql 4.0 che è l'ultima versione stabile, la quale però non
supporta unicode.
Alcuni programmatori mi hanno consigliato di utilizzare HTML/encode ma 
proprio non mi funziona!  
Mi sapreste dire dov'è che sbaglio?
Qui posto il codice che viene eseguito lato server per effettuare 
l'inserimento nel database.
_ _ _ _ _ _ _ _ _ _ _ _ _  _ _ _ _ _ _ _ _  _ _ _ _  _ _ _ _  _ _
'Raddoppia gli apici se ci sono 
txtComune.Text = Replace(txtComune.Text, "'", "''") 
txtAnnuncio.Text = Replace(txtAnnuncio.Text, "'", "''") 
txtRecapito.Text = Replace(txtRecapito.Text, "'", "''") 
Comune = Server.HtmlEncode(txtComune.Text) 
Annuncio = Server.HtmlEncode(txtAnnuncio.Text) 
Recapito = Server.HtmlEncode(txtRecapito.Text) 
IDInserzione = New PostiLetto().SaveInserzioneBacheca 
(TipoAnnuncio, cmbStatiO.SelectedItem.Text, _ 
Me.cmbDivisionO.SelectedItem.Text, Comune, Annuncio, 
Recapito, CStr(Request.UserHostAddress)) 
_ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _  _ _ ___ _ _ _  _ _ _ _ _
Se conoscete anche qualche altra metodologia che mi consenta di fare
questo lavoro consigliatemola!
Grazie 1000 per i Vostri Consigli
Ciao Simon
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Mi sapreste dire dov'è che sbaglio?
Noto prima di tutto che da una discussione recente sul problema dei
caratteri CJK (coreano, giapponese, cinese), sono giunto al risultato
che il meccanismo suggerito funziona anche nella pratica, e
dettagliatamente con php+postgres.
Si puo' partire dalla visione dei punti critici che dovrebbero essere:
1. trasmissione del testo browser-->server
2. memorizzazione del testo nelle variabili dell'ambiente di scripting
3. scrittura nella base di dati
4. recupero dalla base di dati
5. trasmissione server-->browser
1. Prima di tutto il browser deve supportare l'inserimento in CJK, e
poi anche la trasmissione verso il server. Fortunatamente l'HTTP
prevede di ricodificare i simboli. Praticamente i simboli multi-byte
vengono spezzati in byte, e ogni byte viene codificato nella nota
convenzione %nn.
2. qua non dovrebbero esserci problemi in quanto le stringhe nelle
variabili dovrebbero accettare un alfabeto di caratteri da 0x00 a
0xFF.
3. Le stringhe SQL sono composte da un alfabeto 0x00-0xFF (o forse
piu'). E' ora quindi sufficiente che la base di dati supporti un
alfabeto 8bit come iso-8859-1 (latin 1). La sequenza di byte generata
dai simboli iniziali sara' salvata come sequenza di caratteri 8bit.
Se le stringhe SQL supportano caratteri multi-byte e il database
supporta set di caratteri multi-byte allora potremmo porci meno
problemi se non fosse per il fatto che l'alfabeto delle stringhe nelle
variabili di scripting non e' multibyte (php non lo supporta, e asp
neppure mi sembra).
4. Il recupero non e' problematico se la memorizzazione e' avvenuta
con successo.
5. I caratteri presi dal database vengono inviati cosi' byte per byte
al browser che interpretera' la sequenza di byte secondo la codifica
della pagina. E' quindi vivamente consigliato di specificare la
corretta codifica tramite il tag META oppure l'intestazione della
risposta HTTP (e' utile quindi vedere le impostazioni del server web).
-- 
Linux Registered User #181013
[Exokernels] Although one approach to eliminating bloated, buggy,
unreliable operating systems is to make them smaller, a more radical
one is to eliminate the operating system altogether.