当使用java.net.URLEncoder.encode时,我得到以下警告:

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

我应该用什么代替呢?


当前回答

你应该使用:

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

其他回答

作为其他响应的额外参考,而不是使用“UTF-8”,您可以使用:

HTTP。UTF_8

它从Java 4开始就被包含在org.apache.http.protocol库中,它也从Android API 1开始被包含。

第一个参数是要编码的字符串;第二个是要使用的字符编码的名称(例如UTF-8)。

使用URLEncoder类:

URLEncoder.encode(String s, String enc)

地点:

s -要翻译的字符串。 enc -支持的字符编码的名称。

标准数据集:

US-ASCII七位ASCII,又名ISO646-US,又名Unicode字符集的基本拉丁块 ISO-8859-1 ISO拉丁字母第1号,又称ISO- Latin -1 UTF-8 8位UCS转换格式 UTF-16BE 16位UCS转换格式,大端字节顺序 UTF-16LE 16位UCS转换格式,小端字节顺序 UTF-16 16位UCS转换格式,由可选的字节顺序标记标识的字节顺序

例子:

import java.net.URLEncoder;

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

你应该使用:

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

使用URLEncoder中的其他编码方法:

URLEncoder.encode(String, String)

第一个参数是要编码的文本;第二个是要使用的字符编码的名称(例如UTF-8)。例如:

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