防止表格中的非美国信件提交(java)

时间:2012-07-07 06:50:55

标签: java jsp tomcat servlets

我在Tomcat中有一个java JSP / servlet应用程序,并且由Apache提供。

服务器端检查以确保只接受范围[A..Z] [a..z],数字和标点符号中的字母。

但是,当输入例如中文字符时,服务器端的值看起来像'&#5960'。

因此,就服务器端而言,这些是有效的标点符号和数字。

任何可以提供帮助的指针?在10次编码马拉松比赛后让我疯狂。

2 个答案:

答案 0 :(得分:0)

您可以在Java中使用Apache Commons StringEscapeUtils.unescapeHTML()

unescapeHtml(String str)

执行以下操作:

  

将包含实体转义符的字符串转义为包含的字符串   对应于转义的实际Unicode字符。

答案 1 :(得分:0)

您需要使用像UTF-8这样的unicode编码来处理文本。

首先确保您的服务器使用UTF-8编码处理请求。您设置或配置的位置取决于您实现JSP / Servlet的方式,但请参阅:http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#setCharacterEncoding(java.lang.String)