URL Encode and Decode Special character in Java

喜欢而已 提交于 2019-11-30 04:53:13

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

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) { }
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");

try guava

use com.google.common.net.UrlEscapers

it works fine with chinese

like this:

Escaper escaper = UrlEscapers.urlFragmentEscaper();
String result = escaper.escape(yoururl);
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!