¿Cómo puedo modificar un Acceso DB a partir de ISO-8859-2 para la codificación UTF-8 en una cadena de conexión?
Pregunta
Tengo una base de datos en ISO-8859-2 formato, pero necesito crear XML en el formato UTF-8.Esto significa que debo codificar la base de datos antes de prinitng en UTF-8.Sé muy poco acerca de ASP.Net, por lo tanto espero que alguien pueda ayudar.
En PHP me gustaría hacer algo como esto:
db_connect();
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET character_set_client='UTF8'");
Este es mi ASP.Net código para la conexión de base de datos:
'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()
¿Cómo y dónde puedo codificar en UTF-8?
Solución
Suponiendo que se tiene una cadena de valor en str
, este es el pure-.NET manera de hacer esto.
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);
Otros consejos
El .NET Framework interno de tipo cadena es UTF-16.Toda la base de datos de acceso se va a convertir a UTF-16, de modo que usted puede ver los datos de forma adecuada:la base de datos, o el proveedor de OLE DB, va a convertir a UTF-16.
El XML escritor clases (que son el uso de XmlDocument o XmlWriter, ¿verdad?) entonces convertir a UTF-8 en la salida.
Básicamente, usted no debería tener que hacer nada extra.