Inserimento testo russo in db mysql

lunedì 12 luglio 2010 - 13.02

maui.80 Profilo | Junior Member

Ciao a tutti,
Ho una pagina web .aspx con realizzata in vb.net dove gestisco i testi di alcune zone del portale.
I testi vengono salvati in db MySql con tabella testi UTF8 con collection utf8_unicode_ci.
I testi dovranno essere in italiano, in russo e altre lingue.
Fino a che inserisco testi in italiano e altre lingue non ho problemi, se però provo ad inserirli in russo , nel database vengono salvati solo dei punti interrogativi.

Come posso risolvere il mio problema?

PS. nel pannello di aruba riporto la query di inserimento o modifica testo con le parole in russo e vengono salvate correttamente, deduco che non sia un problema di settaggio del DB MySql.

PS2. Ho anche inserito il tag <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> nell'<head>



NON C'è PROPRIO NESSUNO CHE è IN GRADO DI AIUTARMI??????

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao

>Come posso risolvere il mio problema?
ma i punti di domanda dove li vedi? sull'applicazione che legge il db? sul manager di mysql?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

maui.80 Profilo | Junior Member

Ciao e innanzitutto grazie dell'attenzione.

Allora i punti di domanda li vendo nel DB in MySql, in sostanza nella textbox di inserimento riesco tranquillamente a scrivere i caratteri russi, nel momento in cui faccio il salvataggio nel DB si salvano tutti punti di domanda.

La tabella del DB ha codifica utf8_general_ci, ed anche il campo testuale dove va a scrivere.

alx_81 Profilo | Guru

>La tabella del DB ha codifica utf8_general_ci, ed anche il campo
>testuale dove va a scrivere.
se poi rivisualizzi un dato salvato, cosa vedi?

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

maui.80 Profilo | Junior Member

vedo ????????
ho fatto anche una procedura su cui lavorare di prova per il salvataggio di una riga te la posto così puoi darmi una dritta (richiama la libreria MySql.Data.dll).

codice pulsante:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

alx_81 Profilo | Guru

>vedo ????????
>ho fatto anche una procedura su cui lavorare di prova per il
>salvataggio di una riga te la posto così puoi darmi una dritta
>(richiama la libreria MySql.Data.dll).
l'inserimento è ok, la stringa è UNICODE.
Quindi vedi i punti di domanda sull'applicazione web che legge il dato?
Postami l'html che usi per visualizzare la pagina.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

maui.80 Profilo | Junior Member

Questa è la pagina dove carico le varie traduzioni (come avrai visto c'è una masterpage):

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Masterpage:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

e con questa procedura da codice popolo i textbox:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

alx_81 Profilo | Guru

Informazione aggiuntiva, il problema lo hai in locale oppure lo vedi anche sul sito che pubblichi?
Sto cercando di capire se siamo a livello di sistema operativo o altro..
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

maui.80 Profilo | Junior Member

Il problema lo ho anche con il sito caricato su aruba.
La cosa singolare è che tramite il pannello di aruba se inserisco i caratteri russi li salva correttamente, questo mi fa pensare che il DB è tutto ok.

ho provato ad aggiungere alla stringa di connessione del DB il CharSet=utf8

constring = "Server=" & SERVER_CONNESSIONE & ";Database=" & DB & ";User id=" & USER & ";Pwd=" & PSW & ";Port=" & PORT & ";CharSet=utf8;"

e come risultato ho che mi si blocca l'inserimento con questo errore di debug:

Incorrect string value: '\xD0\xA2\xD0\xB8\xD0\xBF' for column 'TESTO' at row 1

alx_81 Profilo | Guru

>constring = "Server=" & SERVER_CONNESSIONE & ";Database=" & DB
>& ";User id=" & USER & ";Pwd=" & PSW & ";Port=" & PORT & ";CharSet=utf8;"
Sinceramente conosco poco mysql. Di solito il problema sta nel charset ma da quanto sembra è un problema che non hai solo tu:
http://www.adviesenzo.nl/examples/php_mysql_charset_fix/
http://stackoverflow.com/questions/2463092/mysql-match-against-russain
http://mysqlcon.com/mysql-database/problem-character-set-utf8-mysql-and-asp-t874.html

di più non so se riesco a dirti..
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

maui.80 Profilo | Junior Member

Vedo cosa riesco a fare

da quel che ho capito è un limite di vb.net con mysql
cercherò altre soluzioni

grazie lo stesso

maui.80 Profilo | Junior Member

Ho risolto il problema esportando la tabella da mysql in un file xml.

Ho realizzato delle procedure che lavorano sul file xml ed in questo modo riesco a gestire il russo e caratteri speciali.

Per tornare al discorso del mysql penso che ci siano dei limiti appunto nel connubio tra mysql e vb.net comunque l'importante è essere riusciti a risolvere

grazie alla prox

MAURO
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5