Hi. I’m using Aspose.Cells 8.7.2 for .NET 4.5.2
const string sourceText = “Text”;This program prints ‘False’ both times. But if you change sourceEncoding to some uncoding encoding (say, UTF-32), then the program works correctly and prints ‘True’ both times.
const string targetText = “هل تتردد إلى هذه الصفحة كثيرًا؟ اجعل”;
var sourceEncoding = Encoding.ASCII;
var targetEncoding = Encoding.UTF8;
using (
MemoryStream sourceStream = new MemoryStream(sourceEncoding.GetBytes(sourceText)),
targetStream = new MemoryStream())
{
{
var workbook = new Workbook(sourceStream, new TxtLoadOptions(LoadFormat.CSV) { Encoding = sourceEncoding });
var worksheet = workbook.Worksheets.Single();
worksheet.Cells.FirstCell.PutValue(targetText);
worksheet.Workbook.Save(targetStream, new TxtSaveOptions(SaveFormat.CSV) { Encoding = targetEncoding });
}
{
targetStream.Position = 0;
var workbook = new Workbook(targetStream, new TxtLoadOptions(LoadFormat.CSV) { Encoding = targetEncoding });
var text = workbook.Worksheets.Single().Cells.FirstCell.StringValue;
Console.WriteLine(text == targetText);
targetStream.Position = 0;
var preamble = new byte[targetEncoding.GetPreamble().Length];
targetStream.Read(preamble, 0, preamble.Length);
Console.WriteLine(targetEncoding.GetPreamble().SequenceEqual(preamble));
}
}