2017-02-21 5 views
1

サーブレット、JavaとHTMLコードを与えることで、Webページへのヒンディー語のテキストを印刷する方法:私は、サーブレットによってヒンディー語フォントを表示したいhttps://hi.wikipedia.org/wiki/%E0%A4%B5%E0%A4%BE%E0%A4%B0%E0%A4%BE%E0%A4%A3%E0%A4%B8%E0%A5%80私は、次のURLからヒンディー語のテキスト抽出するために、サーブレット、Javaおよび1つのHTMLコードを使用しています

//Extraction1.java //java file 
import java.io.IOException; 
import java.net.URL; 
import java.util.Scanner; 

public class Extraction1 { 

public String toHtmlString(String url) throws IOException 
{ 
    StringBuilder sb = new StringBuilder(); 
    for(Scanner sc = new Scanner(new URL(url).openStream()); sc.hasNext();) 
    sb.append(sc.nextLine()).append('\n'); 
    return sb.toString(); 
} 
} 

MultiParamServlet3.java //サーブレットファイル

import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

public class MultiParamServlet3 extends HttpServlet 
{ 
    private static final long serialVersionUID = 1L; 

    public void doPost(HttpServletRequest req,HttpServletResponse resp) throws   ServletException,IOException 
{ 
    PrintWriter pw=resp.getWriter(); 

    resp.setContentType("text/html"); 

    String[] values=req.getParameterValues("habits"); 

    Extraction1 t=new Extraction1(); 
    String s=t.toHtmlString(values[0]).replaceAll("\\<.*?>",""); 
    pw.println("<html><head><meta charset=\"utf-8\"></head><body>"+s+"</body></html>"); 

    pw.close(); 
} 
} 

index.htmlを// htmlファイル

:コードは、コードは次のように与えられています
<!DOCTYPE html> 
    <html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Insert title here</title> 
    </head> 
    <body> 
    <form method="Post" action="MultiParamServlet3"> 
    <Label> <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;Enter the URL : </label> 
    <input name='habits' id='t2'> 
    <input type="submit" name="submit"> 
</form> 
</body> 
</html> 

抽出後に英語のテキストを印刷することはできますが、ヒンディー語のテキストは??? (疑問符)。

サーブレットプログラムでWebページにヒンディー語のテキストを印刷する方法は?

+0

もちろん、Unicodeが必要です。 Javaコードにマークアップを埋め込むことをやめてください。 JSPやその他のテンプレートソリューションについて学んでください。 – duffymo

答えて

0

エンコード応答を設定する必要があります。

変更"text/html"~"UTF-8"

apache.commons.langから
resp.setCharacterEncoding("UTF-8"); 
+0

私はすでにresp.setCharacterEncoding( "text/html")として書かれています。 resp.setCharacterEncoding( "UTF-8");しかし、動作しません。 –

+0

"UTF-8"に変更すると、 –

+0

は私が使ったときには動作しません:resp.setContentType( "text/html"); resp.setCharacterEncoding( "UTF-8"); –

-1

使用StringEscapeUtilsクラスとそれが好き実装:

String output=StringEscapeUtils.unescapeHtml3(responseMessageString); 

mathodは私がcommons.lang 3.3を使用していますAPIバージョンに依存します。

関連する問題