我需要使用javascript在jsp中编码一个字符串,并将此字符串发送到spring控制器并在java中解码此字符串,目前我正在做类似的事情
javascript - 在jsp中
if(/^.%[a-zA-Z0-9- ]*$/.test(comments) == false) {
// alert('Your comments contains illegal characters.');
var encodedComments = encodeURI(comments);
//alert(encodedComments);
} else{
var encodedComments = comments;
//alert(encodedComments);
}
在控制器中
String regex = "[a-zA-Z0-9-/.^%$/ ]*";
boolean m = Pattern.matches(regex, data[6]);
if (m == true) {
System.out.println("There is a sp. character in the string");
try {
comments = URLDecoder.decode(data[6], "UTF-8");
logger.info("The decoded string comments============>>>>>>>>>>>"+comments);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
} else {
System.out.println("There is no sp. char.");
comments = data[6];
logger.info("The remarks with no special characters is ============>>>>>>>>>>>"+comments);
}
对于ex:我在textarea中给出了评论:得分6.08%,编码的字符串正确,但解码后的字符串不起作用,只是打印得分6全部。如何解码javascript编码的java中的字符串? 我在这里错过了什么吗?
任何帮助都会很棒。
提前致谢。
答案 0 :(得分:0)
在javascript方面,你需要总是在java端通过encodeURIComponent进行编码,你需要总是进行解码,如果从QUERY_STRING直接读取,如果你正在从request.getParameter读取 - 根本不需要解码