如何在javascript中编码字符串并解码java中的字符串

时间:2013-10-23 02:52:52

标签: java javascript spring-mvc

我需要使用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中的字符串? 我在这里错过了什么吗?

任何帮助都会很棒。

提前致谢。

1 个答案:

答案 0 :(得分:0)

在javascript方面,你需要总是在java端通过encodeURIComponent进行编码,你需要总是进行解码,如果从QUERY_STRING直接读取,如果你正在从request.getParameter读取 - 根本不需要解码