Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中编码字符串并在java中解码字符串_Java_Javascript_Spring Mvc - Fatal编程技术网

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

如何在javascript中编码字符串并在java中解码字符串,java,javascript,spring-mvc,Java,Javascript,Spring Mvc,我需要使用javascript在jsp中编码一个字符串,并将该字符串发送到spring控制器,然后用java解码该字符串,我目前正在做类似的事情 jsp中的javascript if(/^.%[a-zA-Z0-9- ]*$/.test(comments) == false) { // alert('Your comments contains illegal characters.'); var encodedComments = encodeURI(commen

我需要使用javascript在jsp中编码一个字符串,并将该字符串发送到spring控制器,然后用java解码该字符串,我目前正在做类似的事情

jsp中的javascript

 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);
        }
例如:我在一个文本区域给出了评论:比如分数6.08%,编码的字符串是正确的,但是解码的字符串不工作,只是打印分数6而已。如何解码javascript编码的java字符串?? 我是不是遗漏了什么

任何帮助都会很好


提前感谢。

在javascript端,您需要始终通过java端进行编码,如果直接从查询字符串读取,您需要始终进行解码,如果您正在从request.getParameter读取数据,则根本不需要解码

您需要用Javayes解码吗?我需要用Javayes解码,并将jsp中的变量以&&分隔的查询字符串发送到控制器,在这种情况下,我可以直接作为request.getParameter(数据[6])获取它,不需要解码吗?您是什么意思“从jsp到控制器”?参数应该用
&
分隔,我正在发送提交表单,并发送变量,如var dataId=var1+”&&&“+var2+”&&“+var3+”&&&&“+comments;this.form.action='${Url}/'+dataId;@sailaja,但正确的方式是
${Url}/?'dataId;
并使用single&ok当然,我会使用single&,我如何在java代码中解码这个comments变量,如果我输入'score 67%,它将按原样显示,但当我给出'score 6.07%'时,它将显示'score 6',仅此而已。如何处理这种情况