当使用java.net.URLEncoder.encode时,我得到以下警告:
warning: [deprecation] encode(java.lang.String) in java.net.URLEncoder has been deprecated
我应该用什么代替呢?
当使用java.net.URLEncoder.encode时,我得到以下警告:
warning: [deprecation] encode(java.lang.String) in java.net.URLEncoder has been deprecated
我应该用什么代替呢?
当前回答
使用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");
其他回答
第一个参数是要编码的字符串;第二个是要使用的字符编码的名称(例如UTF-8)。
严格来说,使用org.apache.commons.httpclient.URI并不是一个问题;问题是您瞄准了错误的构造函数,这是被贬低的。
仅使用
new URI( [string] );
确实会标记为贬值。所需要的是提供至少一个额外的参数(下面的第一个),最好是两个:
如果URI字符序列是转义形式,则为true。否则错误。 字符集:用于转义编码的字符集字符串,如果 要求
这将针对该类中的非折损构造函数。所以理想的用法是这样的:
new URI( [string], true, StandardCharsets.UTF_8.toString() );
在游戏的后期有点疯狂(11年多之后——天啊!),但我希望这对其他人有所帮助,特别是如果远端的方法仍然期望一个URI,例如org.apache.commons.httpclient.setURI()。
你应该使用:
URLEncoder.encode("NAME", "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中的其他编码方法:
URLEncoder.encode(String, String)
第一个参数是要编码的文本;第二个是要使用的字符编码的名称(例如UTF-8)。例如:
System.out.println(
URLEncoder.encode(
"urlParameterString",
java.nio.charset.StandardCharsets.UTF_8.toString()
)
);