Urlencoding дадзеныя па паведамленні цела запыту. Ці магу я з дапамогай няправільна кодавай?

Я хачу паўтарыць запыт на працоўны POST ў Java. Для мэт тэставання, дазваляе прымаць паведамленні, як: ' äöõüäöõüäöõüäöõü '

Просьба Рабочай POST (з кадзіраваць паведамленнем ' äöõüäöõüäöõüäöõü '):

<Моцны> Загаловак

POST http://www.mysite.com/newreply.php?do=postreply&t=477352 HTTP/1.1
Host: www.warriorforum.com
Connection: keep-alive
Content-Length: 403
Origin: http://www.mysite.com
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko)Chrome/14.0.835.202 Safari/535.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept: */*
Referer: http://www.mysite.com/test-forum/477352-test.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: bblastvisit=1319205053; bblastactivity=0; bbuserid=265374; bbpassword=1125e9ec1ab41f532ab8ec6f77ddaf94; bbsessionhash=91444317c100996990a04d6c5bbd8375;

<Моцны> Цела

securitytoken=1319806096-618e5f9012901e2d818bf2c74c2121baa064be57&ajax=1&ajax_lastpost=1319806096&**message=%u00E4%u00F6%u00F5%u00FC%u00E4%u00F6%u00F5%u00FC%u00E4%u00F6%u00F5%u00FC%u00E4%u00F6%u00F5%u00FC**&wysiwyg=0&styleid=1&signature=1&fromquickreply=1&s=&do=postreply&t=477352&p=who%20cares&specifiedpost=0&parseurl=1&loggedinuser=265374

As we can see in the request body 'äöõüäöõüäöõüäöõü is encoded as: %u00E4%u00F6%u00F5%u00FC%u00E4%u00F6%u00F5%u00FC%u00E4%u00F6%u00F5%u00FC%u00E4%u00F6%u00F5%u00FC

Цяпер я хачу, каб паўтарыць яго.

Дазваляе Url кадзіраваць тэкст кадоўкі UTF-8 у Java:

String userText = "äöõüäöõüäöõüäöõü";
String encoded = URLEncoder.encode(userText, "utf-8");

Result: %C3%A4%C3%B6%C3%B5%C3%BC%C3%A4%C3%B6%C3%B5%C3%BC%C3%A4%C3%B6%C3%B5%C3%BC%C3%A4%C3%B6%C3%B5%C3%BC%0A%0A%0A%5BSIZE%3D%221%22%5D%5BI%5D << NOT THE SAME

Дазваляе паспрабаваць ISO-8859-1:

String userText = "äöõüäöõüäöõüäöõü";
String encoded = URLEncoder.encode(userText, "ISO-8859-1");

Result: %E4%F6%F5%FC%E4%F6%F5%FC%E4%F6%F5%FC%E4%F6%F5%FC%0A%0A%0A%5BSIZE%3D%221%22%5D%5BI%5D << NOT THE SAME

Ні адзін з іх вырабляюць тую ж закадаваную радок, як у працоўным прыкладзе, але ўсе яны маюць адзін і той жа ўваход. Што я тут адсутнічае?

2

1 адказы

%u00E4%u00F6%u00F5%u00FC%u00E4%u00F6%u00F5%u00FC%u00E4%u00F6%u00F5%u00FC%u00E4%u00F6%u00F5%u00FC

Я не ведаю, што прыведзеныя вышэй дадзеныя кадуюцца як, але не ужыванне/х-WWW-формаў-urlencoded; кадоўка = UTF-8 у формуле запыту. Гэта не юрыдычныя дадзеныя для гэтага MIME тыпу.

Падобна на UTF-16BE-закадаванай форме.

URLEncoder.encode(userText, "utf-8"); would be the correct way to encode the application/x-www-form-urlencoded; charset=UTF-8 values if this was actually what the server was expecting. (ref)

3
дададзена
@SYLAARR - гэта малаверагодна, што браўзэр вырабляе гэтыя дадзеныя. Я хацеў бы паглядзець на JavaScript, які стварае гэта.
дададзена аўтар McDowell, крыніца
Як бы гэта магчыма для мяне, каб вызначыць, які тып кадавання гэта? Заўвага: гэта запыт POST на форуме форуму працуе на версіі 3.8.7
дададзена аўтар Indrek Kõue, крыніца
Дзякуй, вы мелі рацыю: Форум форуму Хуткі адказ кадзіраваць паведамленне з somekind іншага алгарытму. Цяпер я сутыкнуўся з іншай праблемай, можа быць, вы можаце мне дапамагчы з гэтым да: stackoverflow.com/questions/8058687/…
дададзена аўтар Indrek Kõue, крыніца