私のC#コードでは、pdfからテキストを抽出していますが、返されるテキストには奇妙な文字が含まれています.pdfドキュメントに「CLEアクション」というテキストがあることがわかっているときに「CLEアクション」を検索すると、私は間違っていますが、テキストを抽出した後、2つの単語の間のスペースのASCIIバイト値が63であることがわかりました...
テキストのエンコーディングを修正する簡単な方法はありますか?
現在、私はこの方法を使用していますが、遅いし、その 1 つのキャラクターに対してしか機能しないと思います。すべてのキャラクターで機能する高速な方法はありますか?
public static string fix_encoding(string src)
{
StringWriter return_str = new StringWriter();
byte[] byte_array = Encoding.ASCII.GetBytes(src.Substring(0, src.Length));
int len = byte_array.Length;
byte byt;
for(var i=0; i<len; i+=1)
{
byt = byte_array[i];
if (byt == 63)
{
return_str.Write(" ");
}
else
{
return_str.Write(Encoding.ASCII.GetString(byte_array, i, 1));
}
}
return return_str.ToString();
}
これが私がこのメソッドを呼び出す方法です:
StringWriter output = new StringWriter();
output.WriteLine(PdfTextExtractor.GetTextFromPage(reader, page, new SimpleTextExtractionStrategy()));
currentText = fix_encoding(output.ToString());