当我从JSP页面中的Form向Servlet提交EUR(€)符号时,我会得到额外的2个随机字符。 (我的IDE是IntelliJ)。为什么提交其他两个角色并且我有什么遗漏?
我在JSP页面中有一个Form,如下所示:
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Euro Form</title>
</head>
<body>
<form action="/servlet" method="post">
<input type="text" name="txtInput1" value="">
<button type="submit">Submit</button>
</form>
</body>
</html>
由以下Servlet处理:
package servlets;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "Servlet", urlPatterns = {"/servlet"})
public class Servlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
request.getRequestDispatcher("/WEB-INF/jsp/form.jsp").include(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String txtInput1 = request.getParameter("txtInput1");
char[] chars = txtInput1.toCharArray();
// ...
request.setAttribute("txtInput1", txtInput1);
request.getRequestDispatcher("/WEB-INF/jsp/form.jsp").include(request, response);
}
}
当我从该表单向Servlet提交EUR(€)符号时,我会收到一组随机字符,实际上如下所示,但是当我将其打印回HTML页面时,它显示为一个€符号......:
答案 0 :(得分:0)
它与unicode字符集有关,事实上在utf-8(这是你正在使用的字符集)中,欧元符号由三元组编码226 130 172