Come cambierei un DB di accesso da ISO-8859-2 a UTF-8 in una stringa di connessione?
Domanda
Ho un database in formato ISO-8859-2, ma devo creare XML in UTF-8.Ciò significa che devo codificare il database prima di stampare in UTF-8.So molto poco di ASP.Net, quindi spero che qualcuno possa aiutare.
In PHP farei qualcosa del genere:
db_connect();
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET character_set_client='UTF8'");
Questo è il mio codice ASP.Net per la connessione al database:
'CONNECTION TO DATABASE
dim dbconn,sql,dbcomm
dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("../baze/test.mdb"))
dbconn.Open()
sql="SELECT * FROM nekretnine, tipovinekretnina WHERE nekretnine.idtipnekretnine = tipovinekretnina.idtipnekretnine ORDER BY nekretnine.idnekretnine"
dbcomm=New OleDbCommand(sql,dbconn)
dbread=dbcomm.ExecuteReader()
while dbread.Read()
Dove e come codifico in UTF-8?
Soluzione
Supponendo che tu abbia una stringa di valore in str
, questo è il metodo pure-.NET per eseguire questa operazione.
var encoding = System.Text.Encoding.GetEncoding("iso-8859-2");
var bytes = System.Text.Encoding.Convert(encoding, System.Text.Encoding.Default, encoding.GetBytes(str));
var newString = System.Text.Encoding.Default.GetString(bytes);
Altri suggerimenti
Il tipo di stringa interna di .NET Framework è UTF-16.Tutti gli accessi al database verranno convertiti in UTF-16 in modo da poter visualizzare i dati in modo appropriato:il database o il provider OLE DB verrà convertito in UTF-16.
Le classi del writer XML (you Sono utilizzando XmlDocument o XmlWriter, giusto?) verrà quindi convertito in UTF-8 sull'output.
Fondamentalmente non dovresti fare nulla in più.