C# 当我从URL中读取PDF时,它正确地显示了英语数据,但其他语言文本在C中不正确#

C# 当我从URL中读取PDF时,它正确地显示了英语数据,但其他语言文本在C中不正确#,c#,.net,windows,C#,.net,Windows,此代码只转换英文文本中的英文PDF代码,我想将任何其他语言转换为英文,所以如何才能解决此问题 下面是我的代码 using iTextSharp.text.pdf; using iTextSharp.text.pdf.parser; private string PDFReader(string url) { StringBuilder text = new StringBuilder(); PdfReader pdfReader;

此代码只转换英文文本中的英文PDF代码,我想将任何其他语言转换为英文,所以如何才能解决此问题

下面是我的代码

using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;   
private string PDFReader(string url)
{
     StringBuilder text = new StringBuilder();
       PdfReader pdfReader;       

          try
            {
            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            url = "http://www.openprocurement.al/tenders/shpallje/29357.pdf";
            pdfReader = new PdfReader(url);
              for (int page = 1; page <= pdfReader.NumberOfPages; page++)
               {
                 ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
                 string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);
                 if (currentText.Contains("Page " + page.ToString()))
                  {
                   currentText = currentText.Replace("Page " + page.ToString(), "♥♥");
                  }
                  currentText = Encoding.UTF8.GetString(Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.UTF8.GetBytes(currentText)));
                text.Append("\n----------------------------------------------------------------------\n");
                  text.Append(currentText);
               }
                    pdfReader.Close();

           }
           catch (Exception ex)
           {

           }

         return text.Replace("‘", "‘").Replace("’", "’").Replace("–", "–").ToString();
        }
使用iTextSharp.text.pdf;
使用iTextSharp.text.pdf.parser;
私有字符串PDFReader(字符串url)
{
StringBuilder text=新的StringBuilder();
PdfReader PdfReader;
尝试
{
ServicePointManager.Expect100Continue=true;
ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12;
url=”http://www.openprocurement.al/tenders/shpallje/29357.pdf";
pdfReader=新的pdfReader(url);

对于(int page=1;page),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();     
}        
静态字符串GetPdfText(字符串url)
{
var separator=“\n-------------------------------------------------------------------------------------\n”;
var text=新的StringBuilder();
var strategy=新的SimpleTextractionStrategy();
使用(var pdfReader=newpdfreader(url))
{
对于(int page=1;page请尝试此


您自己的代码会破坏文本。NET中的字符串是Unicode。它们不需要任何解码或代码页转换。行
Encoding.UTF8.GetString(Encoding.Conv.
保证文本是乱码。只需删除它。同时删除结尾处的所有替换项-这些字符串是由“解码”创建的行我提供给你的链接,我想数据,因为它是在链接中给出的,(在链接中有一个PDF页面)你试过代码了吗?我使用了那个URL并取回了文件。格式不一样,因为简单文本不包含格式或空格。如果你有多个空格,那是因为
simpletextractionstrategy
返回的结果。在任何情况下,PDF都不是文本格式,文件中不同文本部分的显示顺序几乎没有影响关于它们在页面中的显示方式我尝试了您的解决方案,它正在我的项目中工作,但存在一个问题。问题是收集的数据fomat不正确我希望使用链接中给出的格式,但我无法做到。我有一个不同的源“”这个链接是源代码,在这个链接中我得到了我想要的准确结果,所以我需要帮助进行正确的格式和空格设置,并且文本丢失,所以我如何解决这个问题请建议我想要的链接-