.NET - это Unicode, а именно UTF16.Им не нужно никакого преобразования.
Проблемы вызваны попыткой конвертировать Unicode в локаль локальной машины, а затем обратно в Unicode, как если бы это был UTF8 (что не так, в локали локальной машины),Это то, что также создает строки â€
- двухбайтовые последовательности UTF8 переводятся как ASCII (скорее всего, западноевропейский).
Этот код извлекает текст без каких-либо проблем преобразования:
static string GetPdfText(string url)
{
var separator="\n----------------------------------------------------------------------\n";
var text = new StringBuilder();
var strategy = new SimpleTextExtractionStrategy();
using( var pdfReader = new PdfReader(url))
{
for (int page = 1; page <= pdfReader.NumberOfPages; page++)
{
var currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);
text.Append(separator);
text.Append(currentText);
}
}
return text.ToString();
}