تم إهمال java.net.URLEncoder.encode(String)، ما الذي يجب أن أستخدمه بدلاً من ذلك؟

StackOverflow https://stackoverflow.com/questions/213506

سؤال

أحصل على التحذير التالي عند الاستخدام java.net.URLEncoder.encode:

warning: [deprecation] encode(java.lang.String)
         in java.net.URLEncoder has been deprecated

ما الذي يجب أن أستخدمه بدلاً من ذلك؟

هل كانت مفيدة؟

المحلول

استخدم طريقة encode آخرين في <لأ href = "http://docs.oracle.com/javase/8/docs/api/java/net/URLEncoder.html#encode-java.lang.String-java. lang.String- "يختلط =" noreferrer "> URLEncoder :

URLEncoder.encode(String, String)

والمعلمة الأولى هو النص لترميز. والثاني هو اسم ترميز الأحرف لاستخدام (على سبيل المثال، UTF-8). على سبيل المثال:

System.out.println(
  URLEncoder.encode(
    "urlParameterString",
    java.nio.charset.StandardCharsets.UTF_8.toString()
  )
);

نصائح أخرى

ويجب عليك استخدام:

URLEncoder.encode("NAME", "UTF-8");

استخدم الفصل URLEncoder:

URLEncoder.encode(String s, String enc)

أين :

س - السلسلة المراد ترجمتها.

إنك - اسم مدعوم ترميز الأحرف.

مجموعات الأحرف القياسية:

الولايات المتحدة-ASCII ASCII ذو سبعة بتات، ويعرف أيضًا باسم.ISO646-الولايات المتحدة، ويعرف أيضًا باسم.الكتلة اللاتينية الأساسية لمجموعة أحرف Unicode ISO-8859-1 ISO Alphabet No.1 ، الملقب.آيزو-لاتين-1

ترميز UTF-8 تنسيق تحويل UCS ذو ثمانية بتات

UTF-16BE تنسيق تحويل UCS ذو ستة عشر بت، ترتيب بايت كبير

UTF-16LE تنسيق تحويل UCS ذو ستة عشر بت، ترتيب بايت صغير

UTF-16 تنسيق تحويل UCS ذو ستة عشر بت، يتم تحديد ترتيب البايت بواسطة علامة ترتيب البايت الاختيارية

مثال:

import java.net.URLEncoder;

String stringEncoded = URLEncoder.encode(
    "This text must be encoded! aeiou áéíóú ñ, peace!", "UTF-8");

والمعلمة الأولى هي سلسلة لترميز. والثاني هو اسم ترميز الأحرف لاستخدام (على سبيل المثال، UTF-8).

كمرجع إضافي للإجابات الأخرى، بدلا من استخدام "UTF-8" يمكنك استخدام:

HTTP.UTF_8

والذي تم تضمينه منذ Java 4 كجزء من مكتبة org.apache.http.protocol، والذي تم تضمينه أيضًا منذ Android API 1.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top