Come cambierei un DB di accesso da ISO-8859-2 a UTF-8 in una stringa di connessione?

StackOverflow https://stackoverflow.com/questions/71578

  •  09-06-2019
  •  | 
  •  

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?

È stato utile?

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ù.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top