Wie würde ich eine Access-DB von ISO-8859-2 auf UTF-8 in einer Verbindungszeichenfolge ändern?
Frage
Ich habe eine Datenbank in ISO-8859-2-Format, aber ich brauche XML in UTF-8 zu erstellen. Das bedeutet, dass ich die Datenbank vor prinitng in UTF-8 kodieren müssen. Ich weiß sehr wenig über ASP.Net, so dass ich hoffe, dass jemand helfen kann.
In PHP würde ich so etwas tun:
db_connect();
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET character_set_client='UTF8'");
Das ist mein ASP.Net-Code für die Datenbankverbindung:
'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()
Wo und wie kodieren ich in UTF-8?
Lösung
Angenommen, Sie Wert Zeichenfolge in str
haben, ist dies die pure-.NET Art und Weise, dies zu tun.
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);
Andere Tipps
Der interne String-Typ des .NET Framework ist UTF-16. Alle Datenbankzugriff wird auf UTF-16 konvertieren, so dass Sie die Daten in geeigneter Weise anzeigen können. Die Datenbank oder den OLE DB-Provider, wird UTF-16 konvertiert
Die XML-Writer-Klassen (Sie ist mit XmlDocument oder XmlWriter, nicht wahr?) Wird dann auf UTF-8 auf dem Ausgang umwandeln.
Grundsätzlich sollten Sie nicht nichts extra brauchen zu tun.