如何解码非ASCII URL

时间:2015-08-12 18:58:45

标签: java http server

我正在编写一个HTTP服务器,为了测试混淆了什么,我在文本字段中输入了ઔஇ。。客户请求是

GET /add_text_data?message=%E0%AA%94%E0%AE%87%E1%86%96&category=log&color=black HTTP/1.1
Host: localhost
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8

当我使用URLDecodeer.decode("%E0%AA%94%E0%AE%87%E1%86%96", "UTF-8")时,我得到???。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

事实证明,这实际上不是URLDecoder的问题,而是使用OutputStream。 URLDecodeer.decode("%E0%AA%94%E0%AE%87%E1%86%96", "UTF-8").equals("ઔஇᆖ")实际上是真的。我只需要将Eclipse设置为接受UTF-8输出。 This question为我修好了。

答案 1 :(得分:0)

看起来UTF-8无法处理它。

您可以在此处测试解码,以查看您必须使用哪种解码。

http://encoder.mattiasgeniar.be/index.php

确保将结果存储在某种可以接受unicode的数据类型中。