【问题标题】:convert special charecters in URL GET/POST Request java转换 URL GET/POST 请求 java 中的特殊字符
【发布时间】:2013-08-04 22:23:55
【问题描述】:

我有一个问题如何在 Java 中转换:

String word="Conformément";

这个:

String word = "Conform%C3%A9ment";

第二个在字符串通过web时进行转换。

提前致谢, 米哈伊尔

【问题讨论】:

    标签: java string web get


    【解决方案1】:

    你可以的

    String encodedWord = URLEncoder.encode(word, "UTF-8");
    

    【讨论】:

    • 嗨,我需要相反的组合。类似 é -> %C3%A9
    【解决方案2】:

    这取决于您希望将这个词插入到 URI 的哪个部分。

    最好的办法是使用支持URI Templates 的库。还有(无耻的塞)I have one which works

    只需创建一个模板并填写正确的值。我也可以帮你制作模板。

    不,URLEncoder.encode()适合这份工作。引用该项目的自述文件:

    这种方法有一个非常普遍的误解。它不对用于 URI 的字符串进行编码,它对用于 POST 数据的字符串进行编码,即用于 application/x-www-form-urlencoded 数据;在这种编码中,空格变为 +,而不是 %20!

    这是一个模板示例,其中单词将出现在查询部分:

    http://my.site/some/where?word={word}
    

    使用上面的库,代码将是:

    final URITemplate tmpl = new URITemplate("http://my.site/some/where?word={word}");
    final VariableMapBuilder builder = VariableMap.newBuilder();
    builder.addScalarValue("word", "Conformément");
    tmpl.toString(builder.freeze()); // returns the correct result
    // Or:
    tmpl.toURI(builder.freeze());
    tmpl.toURL(builder.freeze());
    

    【讨论】:

      【解决方案3】:

      您可能希望按照this 其他线程中的建议使用URLEncoder.encode()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-23
        • 1970-01-01
        • 2021-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多