itextsharp 获取文本_在C#中使用iTextSharp读取pdf内容

小编典典

在.Net中,一旦有了一个字符串, 便有了一个字符串 ,并且它 始终 是Unicode

。实际的内存实现是UTF-16,但这并不重要。永远不要将字符串分解为字节,并尝试将其重新解释为不同的编码,然后将其拍回为字符串,因为这样做没有意义,并且几乎总是会失败。

您的问题是这一行:

currentText = Encoding.UTF8.GetString(Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.UTF8.GetBytes(currentText)));

我将其分成几行来说明:

byte[] bytes = Encoding.UTF8.GetBytes("ی"); //bytes now holds 0xDB8C

byte[] converted = Encoding.Convert(Encoding.Default, Encoding.UTF8, bytes);//converted now holds 0xC39BC592

string final = Encoding.UTF8.GetString(converted);//final now holds ی

该代码将混淆127 ASCII屏障以上的所有内容。删除重新编码行,您应该会很好。

旁注,很可能任何创建字符串的操作都会错误地进行,实际上并不太常见。但是您需要先解决该问题, 然后

再string在byte级别上解决该问题。

编辑

该代码应与上面的代码完全相同,只是应删除一行。另外,无论您使用什么显示文本,请确保其支持Unicode。另外

你可能感兴趣的:(itextsharp,获取文本)