【问题标题】:how to encode a string in javascript and decode the string in java如何在javascript中编码字符串并在java中解码字符串
【发布时间】:2013-11-01 03:41:42
【问题描述】:

我需要使用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);
        }

例如:我在 textarea 中给出了 cmets:就像得分 6.08%,编码的字符串正确出现,但解码的字符串不起作用,它只是打印得分 6 而已。如何解码用 javascript 编码的 java 中的字符串? 我在这里错过了什么吗??

任何帮助都会很棒。

提前致谢。

【问题讨论】:

  • 你需要用Java解码吗
  • 是的,我需要在 java 中解码

标签: java javascript spring-mvc


【解决方案1】:

在 javascript 端,您需要始终通过encodeURIComponent 进行编码,在 java 端,如果直接从 QUERY_STRING 读取,如果您从 request.getParameter 读取,则始终需要解码 - 根本不需要解码

【讨论】:

  • 是的,并以 && 分隔的 queryString 将变量从 jsp 发送到控制器,在这种情况下,我可以直接将其作为 request.getParameter(data[6]) 获取,无需解码吗? ?
  • 你是什么意思“从jsp到控制器”?参数应使用& 分隔
  • 我正在发送提交表单,并发送像这​​样的变量 var dataId = var1 + "&&" + var2 + "&&" + var3 + "&&" + cmets; this.form.action = '${Url}/' + dataId;
  • @sailaja 但以正确的方式使用${Url}/?' dataId; 并使用单个 &
  • 好的,我将使用单个&,我如何在java代码中解码这个cmets变量,如果我输入'score 67%',它会按原样显示,但是当我给出'得分 6.07%' 它显示'得分 6' 就是这样。如何处理这种情况
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-24
  • 2016-07-15
  • 1970-01-01
  • 2023-04-11
相关资源
最近更新 更多