URL url= new URL("http://example.com/query?q=random word £500 bank $");
URI uri = new URI(url.getProtocol(), url.getUserInfo(), IDN.toASCII(url.getHost()), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
String correctEncodedURL=uri.toASCIIString();
System.out.println(correctEncodedURL);
ছাপে
http://example.com/query?q=random%20word%20%C2%A3500%20bank%20$
এখানে কি হচ্ছে?
1. স্ট্রাকচারাল অংশগুলিতে ইউআরএল বিভক্ত করুন। java.net.URL
এটির জন্য ব্যবহার করুন ।
2. প্রতিটি কাঠামোগত অংশ সঠিকভাবে এনকোড করুন!
3. ব্যবহারের IDN.toASCII(putDomainNameHere)
জন্য Punycode হোস্টনেম এনকোড!
৪.java.net.URI.toASCIIString()
শতাংশ-এনকোডে ব্যবহার করুন , এনএফসি এনকোডেড ইউনিকোড - (এনএফকেসি আরও ভাল হবে)। আরও তথ্যের জন্য দেখুন: কীভাবে এই URL টি সঠিকভাবে এনকোড করা যায়
কিছু ক্ষেত্রে ইউআরএল ইতিমধ্যে এনকোড করা হয়েছে কিনা তা পরীক্ষা করার পরামর্শ দেওয়া হচ্ছে । '%' এনকোডেড স্পেসগুলির সাথে '+' এনকোড করা স্থানগুলিও প্রতিস্থাপন করুন।
এখানে কিছু উদাহরণ রয়েছে যা সঠিকভাবে কাজ করবে
{
"in" : "http://نامهای.com/",
"out" : "http://xn--mgba3gch31f.com/"
},{
"in" : "http://www.example.com/‥/foo",
"out" : "http://www.example.com/%E2%80%A5/foo"
},{
"in" : "http://search.barnesandnoble.com/booksearch/first book.pdf",
"out" : "http://search.barnesandnoble.com/booksearch/first%20book.pdf"
}, {
"in" : "http://example.com/query?q=random word £500 bank $",
"out" : "http://example.com/query?q=random%20word%20%C2%A3500%20bank%20$"
}
ওয়েব প্লাটফর্ম টেস্টগুলি সরবরাহ করে প্রায় 100 টি টেস্টকেস সমাধানটি পাস করে ।