Давным давно от тяжёлой лени начал пользовать .Net Framework. С MS SQL все естественно зашибись, но пришлось столкнутся с SyBase ASE 12 и получением кирилических строк из БД. Но строка полученная с помощью стандартного ado.NET провайдера для ASE 12 упорно была в виде крякозяблов и стандартными преобразованиями никак в кирилицу не превращалась. Однако при преобразовании в массив byte или char в ней явно прослеживались символы из cp1251. В итоге пришлось родить вот такой вот код:
//преобразование 0 столбца таблички получаемой с помощью .NET из SyBase ASE в //удобочитаемою строку
using SyBase.Data.AseClient
Sybase.Data.AseClient.AseDataR
char[] buf=new char[255];
while (reader.Read())
{
long l=reader.GetChars(0, 0, buf, 0, 255);
//тут самое интересное, почему бы не использовать GetBytes сразу, ну вот не работает, почему не //разобрался, проще конвертнуть char[]2byte[], кто посоветует способ лучше?
MessageBox.Show(System.Text.Encoding.
}
private static byte[] CharArray2ByteArray(char[] ch,long l)
{
byte[] byteArray = new byte[l];
for (int i = 0; i < l; i++)
byteArray[i] = Convert.ToByte(ch[i]);
return byteArray;
}
Комментариев нет:
Отправить комментарий