0

URLEncoder.encode(String,"UTF-8");//host:port/abc/testr-email.html?ans1=NÃO&ans2=NÃO&ans3=NÃO&ans4=SIM&ans5=NÃO&cntr=1&ts=5&pname=TAAAを使用した後のページ URL は " " です。ページパスで、特殊文字がエスケープ/エンコードされた状態で以下のようになりました。

pagepath = "//host:port/abc/testr-email.html?ans1=N%C3%83O&ans2=N%C3%83O&ans3=N%C3%83O&ans4=SIM&ans5=N%C3%83O&counter=1&totalquestions=5&participantname=TAAA"

以下は、ページコンテンツを読み取ろうとしているコードスニペットです。「NãO」などの特殊文字の値があり、バッファリーダープロセスがデコードして値を取得し、電子メールで送信した後にエンコードされた機能が失われています。体。

コードスニペット:

url = new URL(pagepath);
 URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());            
            url = uri.toURL();
            URLConnection conn = url.openConnection(); 
            BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
            String inputLine;
            StringBuilder content = new StringBuilder();
            while ((inputLine = br.readLine()) != null) {               
                byte[] byte1 = inputLine.getBytes("UTF-8");
                String sample=new String(byte1, "UTF-8");
                log.info("sample Content ==>" + StringEscapeUtils.unescapeHtml4(sample));
                content.append(sample);

Where the content is an a StringBuilder as below            


StringBuilder content = new StringBuilder();

BufferedReader が URLEncoded 機能を失った後のコンテンツは、私の特殊文字をデコードに戻し、それを電子メールに使用します。

String tempstring = StringEscapeUtils.unescapeHtml4(content.toString());
                email.setHtmlMsg(tempstring);

私は、email.setHtmlMsg(...) を観察しています。私の「NãO 」特殊文字がなく、「 N%C3%83O 」として文字をエスケープしています。
特殊文字を取得し、メール送信機能で HTML メッセージ本文に送信する方法。?

4

1 に答える 1