2017-02-21 72 views
1

я использую сервлета, Java и один HTML-код для извлечения хинди текст из следующего URL: 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Как напечатать хинди текст на веб-страницы, предоставляя сервлета, Java и 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> 

программа сервлетов, способная печатать английский текст после извлечения, но текст хинди преобразован как ????? (вопросительный знак).

Как печатать хинди текст на веб-страницу по программе сервлетов?

+0

Нужен Юникод, конечно. Сделайте себе одолжение и прекратите встраивать разметку в Java-код. Узнайте о JSP или другом решении шаблона. – duffymo

ответ

0

Вы должны установить ответ на кодирование.

изменение "text/html" до "UTF-8".

resp.setCharacterEncoding("UTF-8"); 
+0

i уже написано как resp.setCharacterEncoding ("text/html"); resp.setCharacterEncoding ("UTF-8"); но не работает –

+0

изменить его на «UTF-8», –

+0

не работает, когда я использовал его как: resp.setContentType («text/html»); resp.setCharacterEncoding ("UTF-8"); –

-1

Используйте StringEscapeUtils класс от apache.commons.lang и реализовать это нравится:

String output=StringEscapeUtils.unescapeHtml3(responseMessageString); 

Mathod зависит от версии апи я использую commons.lang 3.3.