2

JSP を使用して、Web アプリケーションで .msg ファイル (つまり、Outlook 電子メール) を表示しようとしています。RTFとして保存されている電子メールの本文コンテンツを抽出するパーサーhttp://auxilii.com/msgparser/を使用しています(時々または常に-チェックしていません)

パーサー自体には、RTF から HTML への 2 つのコンバーターSimpleRTF2HTMLConverter(私にはまったく機能しません) とJEditorPaneRTF2HTMLConverter(機能しますが、ヘブライ語のテキストを適切に変換せず、疑問符が表示されるだけです) が付属しています。

JEditorPaneRTF2HTMLConverterUniCode全般(特にヘブライ語)のコード(以下に再現)を微調整する方法はありますか?

  public class JEditorPaneRTF2HTMLConverter implements RTF2HTMLConverter {

        public String rtf2html(String rtf) throws Exception {
            JEditorPane p = new JEditorPane();
            p.setContentType("text/rtf");
            EditorKit kitRtf = p.getEditorKitForContentType("text/rtf");
            try {
                StringReader rtfReader = new StringReader(rtf);
                kitRtf.read(rtfReader, p.getDocument(), 0);
                kitRtf = null;
                EditorKit kitHtml = p.getEditorKitForContentType("text/html");
                Writer writer = new StringWriter();
                kitHtml.write(writer, p.getDocument(), 0, p.getDocument().getLength());
                return writer.toString();
            } catch (Exception e) {
                throw new Exception("Could not convert RTF to HTML.", e);
            }
        }

    }

例として。元の電子メールには電話番号が記載されています - טלפון (電話) の略語である 2 つのヘブライ文字に注意してください。

טל: 02-9999999

この関数への入力である RTF では、次のようになります。

\pard\qr\plain{\f3\rtlch\lang13\cf2\fs20 \'E8\'EC': 02-9999999}\par

この関数から出力される HTML では、次のようになります。

<p class=default>
      <span style="color: #808080; font-size: 10pt; font-family: Arial">
        鬧: 02-9999999
      </span>
      <span style="color: #000000; font-size: 12pt; font-family: Times New Roman">

      </span>
    </p>

ここで StackOverflow に表示される鬧の文字は、NotePad++ では xE8xEC (反転文字) として表示されますが、私の Web アプリケーションでは ?? としてレンダリングされます。[書式を設定せずに電子メールの本文だけを取得すると、アプリケーションでヘブライ語が正しく表示されることに注意してください。]

4

0 に答える 0