URL Encode and Decode Special character in Java

前端 未结 4 1889
清酒与你
清酒与你 2020-12-29 07:19

In Java, I need to use HTTP Post to send request to server, but if in the parameter of the URL contains some special character it throws below Exception

相关标签:
4条回答
  • 2020-12-29 07:57

    To encode text for safe passage through the internets:

    import java.net.*;
    ...
    try {
        encodedValue= URLEncoder.encode(rawValue, "UTF-8");
    } catch (UnsupportedEncodingException uee) { }
    

    And to decode:

    try {
        decodedValue = URLDecoder.decode(rawValue, "UTF-8");
    } catch (UnsupportedEncodingException uee) { }
    
    0 讨论(0)
  • 2020-12-29 07:57
    String data = request.getParameter(param1);
    

    If this is the servlet API, the parameters have already been decoded. No further handling of percent-encoding is necessary.


    I haven't used HttpClient, but ensure it is sending the encoding in the header:

    Content-type: application/x-www-form-urlencoded; charset=UTF-8
    

    Or, if you must, set the known encoding before any getParameter calls:

    request.setCharacterEncoding("UTF-8");
    
    0 讨论(0)
  • 2020-12-29 07:58

    Sadly url encoder will not solve your problem. I had this problem and used a custom utility. I remember this I got from googling ;).

    http://www.javapractices.com/topic/TopicAction.do?Id=96

    0 讨论(0)
  • 2020-12-29 08:18

    try guava

    use com.google.common.net.UrlEscapers

    it works fine with chinese

    like this:

    Escaper escaper = UrlEscapers.urlFragmentEscaper();
    String result = escaper.escape(yoururl);
    
    0 讨论(0)
提交回复
热议问题