ArcEngine讀取ShapeFile時,如果用LicenseControl的話,字段中含有漢字時可以正常使用,當使用LicenseInitializer進行初始化時,讀取含有漢字的字段時,就會出現亂碼。
亂碼肯定是由於編碼引起的,Google之後,在國外的網站查到DBF的編碼格式爲固定的ISO8559-1,所以需要做的事是將ISO8559-1的編碼轉化爲gb2312,經測試以上思路確實可行,代碼如下:
IFeature feature = featureCursor.NextFeature();if (feature != null)
{
string value1 = feature.get_Value(feature.Fields.FindField("NAME99"));
byte[] temp = Encoding.GetEncoding("ISO8859-1").GetBytes(value1);
string value2 = Encoding.Default.GetString(temp);
}