Search code examples
.netencodingarabicinformix

IBM Informix Database Encoding Issue With .Net when Retrieve Arabic String


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

?????? ???? ????? ?????


Solution

  • 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 'نيمبالى بادرها سرادهى راجو'