<%@page import="java.net.URLDecoder"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="java.net.URLDecoder"%>
<%@page import="java.net.URLEncoder"%>
<html>
<form action="index.jsp">
<body>
First INPUT:
<input name="firstinput" type="text" name="fname">
<br>
<input type="submit" value="Submit">
<%
String first = request.getParameter("firstinput");
String Searchtext=URLDecoder.decode(first,"UTF-8");
out.println(Searchtext);
out.println(URLEncoder.encode(Searchtext,"UTF-8"));
%>
</body>
</form>
</html>
这是我的代码,我想在 Jsp 中编码和解码文本 实际上,我希望当输入文本“”、''、/ /...任何特殊宪章时,它应该打印与输入“hello”或类似的文本相同的文本你好,那么它应该打印你好,或者如果输入“你好”,那么它也应该打印你好...特殊宪章不应该显示,请帮助我,我无法做到这一点...
我想你需要这个:
String lWithoutSpecials = first.replaceAll("[^\\p{Alpha}]+","");
对我来说效果很好:
String s = "\\Hello\\ \"Hello\" 'Hello'";
String lWithoutSpecials = s.replaceAll("[^\\p{Alpha}]+", "");
System.out.println(lWithoutSpecials);
输出:
你好你好你好
您没有使用完整的 Unicode,而是使用 Latin-1、ISO-8859-1。这个 Latin-1 将浏览器 解释为 MS Windows Latin-1 或“Cp-1252”/“Windows-1252”。该字符集有一些特殊字符,例如逗号(如引号)、€(欧元)等。
URL编码/解码是自动完成的。输入的数据条目可以 导致数字 HTML 实体到达服务器,例如当具有诸如 Latin-1 之类的受限字符集时的
Ӓ
。对于整个 Unicode 字符使用 UTF-8,您需要添加到 <form accept-charset="UTF8">
以防止被数字实体替换。
HTML 5 表单:
<%@page language="java" contentType="text/html; charset=Windows-1252"
pageEncoding="Windows-1252"
import="java.net.URLDecoder"
import="java.net.URLEncoder"
%><!DOCTYPE html>
<html>
<head>
<title>First Input</title>
<meta charset="ISO-8859-1">
</head>
<body>
<form action="index.jsp">
First INPUT:
<input name="firstinput" type="text"
value="${param.firstinput}">
<br>
<input type="submit" value="Submit">
<%
String first = request.getParameter("firstinput");
String searchtext = first;
out.println(searchtext);
%>
</form>
</body>
</html>
谎称其字符集是有限的 ISO-8859-1,但 java 提供了更大的字符集 Windows-1252。
标签
<form>
必须位于<body>
内。如果您对表单边距等这样做,请使用 CSS 样式。