ব্যবহার করার সময় আমি নিম্নলিখিত সতর্কতাটি পাই java.net.URLEncoder.encode
:
সতর্কতা: [অবচয়] এনকোড (জাভা.লাং। স্ট্রিং) java.net.URLEncoder এ অবচয় করা হয়েছে
পরিবর্তে আমার কী ব্যবহার করা উচিত?
ব্যবহার করার সময় আমি নিম্নলিখিত সতর্কতাটি পাই java.net.URLEncoder.encode
:
সতর্কতা: [অবচয়] এনকোড (জাভা.লাং। স্ট্রিং) java.net.URLEncoder এ অবচয় করা হয়েছে
পরিবর্তে আমার কী ব্যবহার করা উচিত?
উত্তর:
ইউআরএলএনসি কোডারে অন্য encode
পদ্ধতিটি ব্যবহার করুন :
URLEncoder.encode(String, String)
প্রথম প্যারামিটারটি এনকোড করার পাঠ্য; দ্বিতীয়টি ব্যবহার করার জন্য অক্ষরটির এনকোডিংয়ের নাম (যেমন, UTF-8
)। উদাহরণ স্বরূপ:
System.out.println(
URLEncoder.encode(
"urlParameterString",
java.nio.charset.StandardCharsets.UTF_8.toString()
)
);
StandardCharsets.US_ASCII
, StandardCharsets.UTF_8
ইত্যাদি দুর্ভাগ্যবশত, URLEncoder.encode
একটি গ্রহণ করে না Charset
... (কিন্তু অন্যান্য অনেক moethods না)।
URLEncoder.encode(<urlStringToBeEncoded>, StandardCharsets.UTF_8.name())
। স্ট্যাটিক ধ্রুবক ব্যবহার UTF_8
এর toString()
অক্ষর এনকোডিং স্কীম হিসাবে পদ্ধতি ছোঁড়ার java.nio.charset.IllegalCharsetNameException: java.nio.charset.CharsetICU[UTF-8]
যেমন toString()
আয় "java.nio.charset.CharsetICU [হল UTF-8]"। পছন্দসই "ইউটিএফ -8" পেতে তার name()
পরিবর্তে এর পদ্ধতিটি ব্যবহার করুন।
আপনার ব্যবহার করা উচিত:
URLEncoder.encode("NAME", "UTF-8");
URLEncoder শ্রেণিটি ব্যবহার করুন :
URLEncoder.encode(String s, String enc)
কোথায় :
s - অনুবাদ করা স্ট্রিং।
এনক - একটি সমর্থিত অক্ষর এনকোডিংয়ের নাম ।
স্ট্যান্ডার্ড চরসেট:
ইউএস-এএসসিআইআই সেভেন-বিট এএসসিআইআই, ওরফে আইএসও 6466-ইউএস, ইউনিকোড চরিত্রের বেসিক ল্যাটিন ব্লকটি আইএসও -৮ -৮৯-১ আইএসও ল্যাটিন বর্ণমালা নং 1 সেট করেছে, ওরফে আইএসও-ল্যাটিন -১
UTF-8 আট-বিট ইউসিএস রূপান্তর ফর্ম্যাট
UTF-16BE ষোল-বিট ইউসিএস রূপান্তর ফর্ম্যাট, বড়-এন্ডিয়ান বাইট অর্ডার
UTF-16LE ষোল-বিট ইউসিএস রূপান্তর ফর্ম্যাট, ছোট-এন্ডিয়ান বাইট ক্রম
UTF-16 ষোল-বিট ইউসিএস রূপান্তর ফর্ম্যাট, বাইট ক্রম একটি alচ্ছিক বাইট-অর্ডার চিহ্ন দ্বারা চিহ্নিত
উদাহরণ:
import java.net.URLEncoder;
String stringEncoded = URLEncoder.encode(
"This text must be encoded! aeiou áéíóú ñ, peace!", "UTF-8");
প্রথম প্যারামিটারটি স্ট্রিংটি এনকোড করা; দ্বিতীয়টি ব্যবহার করতে অক্ষরটির এনকোডিংয়ের নাম (যেমন, ইউটিএফ -8)।
অন্যান্য প্রতিক্রিয়াগুলির জন্য অতিরিক্ত রেফারেন্স হিসাবে, "ইউটিএফ -8" ব্যবহার না করে আপনি ব্যবহার করতে পারেন:
HTTP.UTF_8
যা জাভা ৪ এর পর থেকে org.apache.http.protocol লাইব্রেরির অংশ হিসাবে অন্তর্ভুক্ত, যা অ্যান্ড্রয়েড API 1 এর পরেও অন্তর্ভুক্ত।
org.apache.http.protocol.HTTP
ক্লাসে পাওয়া যায় ।
ব্যবহার org.apache.commons.httpclient.URI
কঠোরভাবে একটি সমস্যা নয়; কি একটি বিষয় যে আপনি ভুল কন্সট্রাকটর, যা লক্ষ্য করা হয় মূল্যমান হ্রাস।
ঠিক ব্যবহার করা হচ্ছে
new URI( [string] );
অবজ্ঞিত হিসাবে এটি অবশ্যই পতাকাঙ্কিত করবে। যা দরকার তা হ'ল কমপক্ষে একটি অতিরিক্ত যুক্তি সরবরাহ করা (প্রথম, নীচে), এবং আদর্শভাবে দুটি:
escaped
: সত্য যদি ইউআরআই চরিত্রের ক্রম পালানো আকারে থাকে। অন্যথায় মিথ্যা।charset
: অক্ষরটি এনকোডিংয়ের জন্য অক্ষর স্ট্রিং, প্রয়োজন হলে ifএটি class শ্রেণীর মধ্যে একটি অবহিত নির্মাতাকে লক্ষ্য করবে। সুতরাং একটি আদর্শ ব্যবহার যেমন হবে:
new URI( [string], true, StandardCharsets.UTF_8.toString() );
গেমটিতে কিছুটা ক্রেজি-দেরী (11 বছরেরও বেশি পরে একটি চুল - উদাহরণস্বরূপ! ) তবে আমি আশা করি এটি অন্য কাউকে সহায়তা করে, বিশেষত যদি শেষ প্রান্তের পদ্ধতিটি এখনও কোনও ইউআরআই আশা করে, যেমন org.apache.commons.httpclient.setURI()
।