I have faced this issue When retrieve Data From IBM INFORMIX DATABASE
-I have setup Version 2.90 Data stored in DB like this
نيمبالى بادرها سرادهى راجو
when i retrieve this from informix get in wrong format like this
äíãÈÇáì ÈÇÏÑåÇ ÓÑÇÏåì ÑÇÌæ
database used this encoding en_us.819
So I have Tried A lot Of Solutions to fix this encoding
i have create this method in .NET to Uni coding this wrong format to correct Arabic format
private static string UniCode_IBM819(string str)
{
Encoding iso = Encoding.GetEncoding("iso-8859-1");
Encoding unicode = Encoding.GetEncoding(708);//Encoding.GetEncoding(864);//Encoding.UTF8;
//byte[] unicodeBytes = unicode.GetBytes(str);
byte[] isoBytes = iso.GetBytes(str);
byte[] utfBytes = Encoding.Convert(iso,unicode, isoBytes);
return unicode.GetString(utfBytes);
}
i have tried 3 encoding but get me result like
?????? ???? ????? ?????
ISSUE SOLVED
I'm using this method:
private static string UniCodeIso819Towin1256(string src)
{
Encoding iso819 = Encoding.GetEncoding("iso8859-1");
Encoding win1256 = Encoding.GetEncoding(1256);
byte[] isoBytes = iso819.GetBytes(src);
return win1256.GetString(isoBytes);
}
to convert this returned value 'äíãÈÇáì ÈÇÏÑåÇ ÓÑÇÏåì ÑÇÌæ' to the original format like this 'نيمبالى بادرها سرادهى راجو'