如何通过给 servlet,java 和 html 代码将印地语文本打印到网页中
How to print Hindi text into web page by giving servlet , java and html code
我正在使用 servlet、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
我想通过 servlet 代码显示印地文字体,代码如下:
//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 // servlet 文件
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> &n bsp; Enter the URL : </label>
<input name='habits' id='t2'>
<input type="submit" name="submit">
</form>
</body>
</html>
servlet 程序能够在提取后打印英文文本,但印地文文本转换为 ?????? (问号)。
如何通过 servlet 程序将印地语文本打印到网页中?
您必须设置编码响应。
将 "text/html"
更改为 "UTF-8"
。
resp.setCharacterEncoding("UTF-8");
使用 apache.commons.lang 中的 StringEscapeUtils class 并像这样实现它:
String output=StringEscapeUtils.unescapeHtml3(responseMessageString);
方法取决于 api 我使用的版本 commons.lang 3.3.
我正在使用 servlet、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
我想通过 servlet 代码显示印地文字体,代码如下:
//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 // servlet 文件
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> &n bsp; Enter the URL : </label>
<input name='habits' id='t2'>
<input type="submit" name="submit">
</form>
</body>
</html>
servlet 程序能够在提取后打印英文文本,但印地文文本转换为 ?????? (问号)。
如何通过 servlet 程序将印地语文本打印到网页中?
您必须设置编码响应。
将 "text/html"
更改为 "UTF-8"
。
resp.setCharacterEncoding("UTF-8");
使用 apache.commons.lang 中的 StringEscapeUtils class 并像这样实现它:
String output=StringEscapeUtils.unescapeHtml3(responseMessageString);
方法取决于 api 我使用的版本 commons.lang 3.3.