I believe that the data that you get from crawled property is IEnumerable. So, I wonder that how you convert it into byte[] and then string?
I have tried this with no success because the "invalid character in a Base-64" is retuned.
XDocument inputDoc = XDocument.Load(args[0]);
var data = from cp in inputDoc.Descendants("CrawledProperty")
where new Guid(cp.Attribute("propertySet").Value).Equals(FMTID_SummaryInformation_DATA) &&
cp.Attribute("propertyName").Value == "data" &&
cp.Attribute("varType").Value == "31"
select cp.Value;
byte[] html = System.Convert.FromBase64String(data);
string dataHtml = Encoding.UTF8.GetString(html);
Edit: Finally, I figured it out using this...
var data = from cp in inputDoc.Descendants("CrawledProperty")
where new Guid(cp.Attribute("propertySet").Value).Equals(FMTID_SummaryInformation_DATA) &&
cp.Attribute("propertyName").Value == "data" &&
cp.Attribute("varType").Value == "31"
select cp.Value;
string datahtml_base64 = "";
foreach (string datas in data)
{
datahtml_base64 += datas;
}
byte[] html = System.Convert.FromBase64String(datahtml_base64);
string dataHtml = Encoding.UTF8.GetString(html);