从IBM INFORMIX DATABASE检索数据时遇到此问题
- 我已设置版本2.90 像这样存储在DB中的数据
نيمبالىبادرهاسرادهىراجو
当我从informix中检索这个时,得到的格式错误,如此
äíãÈÇáìÈÇÏÑåÇÓÑÇÏåìÑÇÌæ
数据库使用此编码en_us.819
所以我尝试了很多解决这个编码的解决方案
我在.NET中创建了这个方法,以Uni编码这种错误的格式来纠正阿拉伯语格式
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);
}
我尝试了3种编码但是得到了像
这样的结果?????? ???? ????? ?????
答案 0 :(得分:1)
问题已解决
我正在使用这种方法:
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);
}
将此返回值'äíãÈÇáìÈÇÏÑåÇÓÑÇÏåìÑÇÌæ'转换为原始格式,如'نيمبالىبادرهاسرادهىراجو'