2012-01-16 30 views
0

pdfファイルの読み込みにiTextSharpを使用しました。私は英語のテキストを読むことができますが、中国語では疑問符が表示されます。iTextSharpを使って中国語の文字を読むにはどうすればいいですか?cでiTextSharpを使って中国語の文字を読む#

coverNoteFilePath = @"D:\Temp\cc8a12e6-399a-4146-81ac-e49eb67e7e1b\CoverNote.pdf"; 
    try 
    { 
     PdfReader reader = new PdfReader(coverNoteFilePath); 

     for (int page = 1; page <= reader.NumberOfPages; page++) 
     { 
      ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy(); 
      String s = PdfTextExtractor.GetTextFromPage(reader, page, its); 

      s = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(s))); 
      coverNoteContent = coverNoteContent + s; 

     } 
     reader.Close(); 
     Response.Write(coverNoteContent); 
    } 

答えて

0

他の符号化クラス(例えばUTF8Encoding)のいずれかでASCIIEncodingを交換してください。私は、PDF文書がどのエンコーディングを使用しているかを知っているので、PdfReaderオブジェクトで正しいものを見つけることができるかもしれません。チェックに値する

MSDNより:

ASCIIが7ビットの符号化であるためASCIIEncodingは、Windowsコードページ20127.に対応し、ASCII文字はU + 0000からU +に、最低128個のUnicode文字に制限され007F Encoding.ASCIIプロパティまたはASCIIEncodingコンストラクタによって返されたデフォルトのエンコーダを使用する場合、その範囲外の文字は、符号化操作が実行される前に疑問符(?)に置き換えられます。 ASCIIEncodingクラスは限られた文字セットしかサポートしないため、UTF8Encodingクラス、UnicodeEncodingクラス、およびUTF32Encodingクラスは、グローバル化されたアプリケーションに適しています。

関連する問題