需要在Java Web应用程序中转义特殊字符

时间:2012-04-25 13:38:42

标签: java html java-ee encoding

我正在使用Oracle DB开发Java EE应用程序。 现在网页上的一些内容有一些特殊的字符,我需要逃避它们。 角色如下所示:

€˜T’ ! “One Chase.†$ % & ( ) ' / : ? ` — – _ ‚ " Test 

有人知道这是什么字符编码,我怎么能逃脱它们?我需要逃脱它们并用空白替换它们。

2 个答案:

答案 0 :(得分:1)

这些字符是代码的副作用,它不能正确处理编码(假设UTF-8是ISO-8859-1,反之亦然) - 它们现在是垃圾。您需要修复您的应用才能正确呈现它们。无需用空格替换它们或进行任何过滤。

阅读本文http://www.joelonsoftware.com/articles/Unicode.html,然后检查数据库交互以及JSP和应用程序服务器设置。

答案 1 :(得分:0)

你可以模式匹配字符串,并建立一个无效字符的黑名单或有一个有效字符的白名单......如下所示

 Pattern p = Pattern.compile(blackList); // or reverse with a white list
 Matcher m = p.matcher(unsafeInputString);
 if (m.matches())
{
    // Invalid input: reject it, or remove/change the offending characters.
}
else
{
   // Valid input.
}