2015-06-03 3 views
1

Я использую java.net.URLDecoder для декодирования параметра URL, который должен быть закодирован в UTF-8. Быстрый тест показывает, что я получаю ? вместо на выходе. Вот код:URLDecoder дает неожиданное значение для параметра url UTF-8

System.out.println(java.net.URLDecoder.decode("A%E2%88%A9B%0AYour+answer+is%3A+3", "UTF-8")); 

И как выход я получаю:

A?B 
Your answer is: 3 

Когда я включаю строку A%E2%88%A9B%0AYour+answer+is%3A+3 в веб-декодеров (например here или here), они получают это право:

A∩B 
Your answer is: 3 

Кто-нибудь знает, что я делаю неправильно. На самом деле это не UTF-8? Строка поступает от com.google.gwt.http.client.URL.encodeQueryString(), которая утверждает кодировку UTF-8.

+0

Я правильно понял, что вы используете это в Windows в cmd.exe? – Siguza

+0

Я запускаю Eclipse и читаю консольный выход. Хотя я изначально столкнулся с проблемой запуска кода на сервере Tomcat. – thomas88wp

+1

Выполнение вышеуказанного кода на [Идеал] (https://ideone.com/RsIIKD) создает второй текст ... – Siguza

ответ

2

Как указывалось Siguza и VGe0rge, код Java работал правильно, но консоль Eclipse не отображается в UTF-8 по умолчанию. Решение этой проблемы можно найти here.