كيف يمكنني تغيير وصول DB من ISO-8859-2 إلى UTF-8 في سلسلة اتصال?
سؤال
لدي قاعدة بيانات في ISO-8859-2 الشكل ، ولكن أنا بحاجة إلى إنشاء XML في UTF-8.وهذا يعني أنه يجب أن ترميز قاعدة البيانات قبل prinitng في UTF-8.أنا أعرف القليل جدا عن ASP.Net لذا آمل شخص يمكن أن تساعد.
في PHP أود أن تفعل شيئا مثل هذا:
db_connect();
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET character_set_client='UTF8'");
هذا هو بلدي ASP.Net رمز اتصال قاعدة البيانات:
'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()
أين وكيف يمكنني ترميز UTF-8?
المحلول
على افتراض لديك قيمة السلسلة في str
, هذا هو pure-.NET طريقة للقيام بذلك.
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);
نصائح أخرى
على .NET Framework الداخلية نوع السلسلة هو UTF-16.جميع الوصول إلى قاعدة البيانات سيتم تحويل إلى UTF-16 بحيث يمكنك عرض البيانات بشكل مناسب:قاعدة البيانات ، أو موفر OLE DB ، convert to UTF-16.
XML الكاتب فصول (أنت هي باستخدام XmlDocument أو XmlWriter, صحيح؟) ثم convert to UTF-8 على الإخراج.
في الأساس يجب أن لا تحتاج إلى القيام بأي شيء إضافي.