java中避免特殊字符的url编码

java中避免特殊字符的url编码,java,encoding,url-encoding,Java,Encoding,Url Encoding,我需要传递编码的url,但它也需要避免特殊字符。那么我该如何编码呢?关于stackoverflow的所有答案都不适合我。有人能帮忙吗?我想用java来做 公共字符串tweet_quote_func(映射属性、过滤器参数){ String url=param.getShorturi(); String text=attrs.get(“显示”); if(url!=null&&text!=null){ 试一试{ text=StringEscapeUtils.unescapethtml(text);//

我需要传递编码的url,但它也需要避免特殊字符。那么我该如何编码呢?关于stackoverflow的所有答案都不适合我。有人能帮忙吗?我想用java来做 公共字符串tweet_quote_func(映射属性、过滤器参数){

String url=param.getShorturi();
String text=attrs.get(“显示”);
if(url!=null&&text!=null){
试一试{
text=StringEscapeUtils.unescapethtml(text);//用于双引号
字符串encodedurl=”https://twitter.com/intent/tweet?url=“+URLEncoder.encode(url,“UTF-8”);
encodedurl=encodedurl+“&text=“+StringUtil.escapeUrl(text);
返回“”;
}捕获(不支持的编码异常e){
系统错误println(e);
返回null;
}
}否则
返回null;
}

您应该对所有URL查询参数名称及其值使用URLCoder。不是StringUtils.escapeURL(),不管是什么

我不知道您对“特殊字符”、“-”、“*”和“u”有什么不同的看法,但是URLEncoder被定义为做正确的事情


对于URL路径本身,您应该使用新的URI(null,path,null).toascistring()。

您可以发布输入和预期输出的示例吗(只是问一下,因为您声称没有标准的方法发布在SO上,所以对您有效)?您还可以包括解决此问题的尝试吗?您可以根据需要进行HTTP、JSON或XML编码。我不明白这个问题;也许你可以澄清你的意思。人们总是通过HTTP发送XML。不能有魔法字符和格式良好的XML,所以这是一个常见的问题。我用java来做。有点urgent@user3298846所有的问题都很紧急。试着帮助我们帮助你。请描述您面临的具体问题(最好举个例子)、您解决该问题的尝试以及失败的原因。URLEncoder可能会对您有所帮助。
    String url = param.getShorturi();
    String text = attrs.get("display");

    if (url != null && text != null) {

        try {

            text = StringEscapeUtils.unescapeHtml(text); // for double quotes

            String encodedurl = "https://twitter.com/intent/tweet?url="+URLEncoder.encode(url, "UTF-8");
            encodedurl = encodedurl + "&text=" + StringUtil.escapeUrl(text);

            return "<span class=\"tweet_quote\"> <a href=" + encodedurl+ ">" + text.trim() + "<span></span></a></span>";

        } catch (UnsupportedEncodingException e) {
            System.err.println(e);
            return null;
        }
    } else
        return null;
}