32 messaggi dal 10 novembre 2005
Ciao,
ho un problema che non sono ancora riuscito a risolvere. Nell'ultimo sito che sto facendo mi hanno fatto usare MySQL (in genere uso SQL Server).
Il sito è fatto anche in russo e quindi ho la necessità di memorizzare testo in cirillico.

Nel DB ho messo come Collation dei campi delle tabelle utf8_general_ci,
nel web.config ho aggiunto
<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8"/>
e la culture impostata via codice a ru-RU.

Il problema è che, attraverso un form view, quando inserisco/modifico i dati al posto delle parole vengono punti di domanda.

Se invece provo a aggiungere/modificare attraverso phpmyadmin tutto funziona correttamente.

Per collegarmi al DB uso la libreria MySql.Data.dll

Sapete per caso dirmi se mi è sfuggito qualche cosa, e come correggere?

Grazie
194 messaggi dal 13 dicembre 2005
Se provi ad inserire del testo in lingua italiana contenente delle lettere accentate riscontri lo stesso problema????

Te lo chiedo perchè io ho avuto questo problema e non dipende dal db ma dall'encoding dichiarato nell'intestazione della pagina...
32 messaggi dal 10 novembre 2005
No, nessun problema con gli accenti.

Io penso sia un problema di encoding nell'inserimento dei dati da asp.net a DB, perché le scritte cirilliche messe nei file di risorse, e quelle inserite nel DB attraverso phpmyadmin funzionano bene, è quando le inserisco attraverso la formview (così come dovrebbe fare il cliente sito finito) che si perdono.

Avevo inoltre fatto un sito molto simile sempre con scritte cirilliche, ma su database SQL Server, e non avevo avuto nessun problema.
194 messaggi dal 13 dicembre 2005
Dopo la connessione al DB prova ad eseguire la seguente query:
SET NAMES utf8


e successivamente la insert nel db
32 messaggi dal 10 novembre 2005
Ho provato ad eseguirla mettendola subito prima di ogni stringa sql o anche eseguendola da sola all'evento ItemInserting e ItemUpdating, ma niente... Quanto mi manca Sql Server
194 messaggi dal 13 dicembre 2005
Anche a me è mancato SQL Server.
Mi è capitato di sviluppare un'applicazione utilizzando MySQL invece di SQL Server ed ho riscontrato una marea di problemi dovuti a buchi di MySQL che spesso e volentieri non sono noti e quando lo sono MySQL non da una soluzione...questo è solo l'inizio per te!!!!

Tornando al problema...su molti forum ho letto che anche se nella struttura della tabella del DB l'encoding non è Latin1 e nella pagina asp è settato a UTF8, nel momento in cui si stabilisce la connessione tra client e server la sessione viene comunque stabilita a Latin1. come soluzione dicono di utilizzare la SET NAMES subito dopo l'apertura della connessione.
Non vorrei però che utilizzando MySql.Data.dll questo non vadi bene...io utilizzo ADODB e a me ha funzionato.
32 messaggi dal 10 novembre 2005
Ammetto la mia mancanza, non sono riuscito a collegarmi via oledb (mi dice che la stringa di connessione è sbagliata), e con Odbc mi davano problemi i parametri...

Su internet a parte il SET NAMES non trovo altre soluzioni, tantomeno per asp.net...

In questo momento sto odiando MySQL!
194 messaggi dal 13 dicembre 2005
io uso ADODB e non OLEDB.
Comunque devi scaricare ed installare i driver ODBC di MySQL (li puoi trovare sul sito). Mentre la stringa di connessione è la seguente:

"DRIVER={MySQL ODBC 3.51 Driver};SERVER=[@DBServer];PORT=3306;DATABASE=[@DBName]; USER=[@ID];PASSWORD=[@PSW];OPTION=3;"

ricorda di dare tutti i permessi all'utente che utilizzi.

Per quanto riguarda la connessione da vb :

1)Importi il riferimento ADODB


Dim conn As New ADODB.Connection

Dim connectionstring as string = <stringa di connessione riportata sopra>

conn.Open(connectionstring)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.