使用时收到以下警告java.net.URLEncoder.encode
:
警告:[弃用] 编码(java.lang.String) 在 java.net.URLEncoder 已被弃用
我应该改用什么?
使用时收到以下警告java.net.URLEncoder.encode
:
警告:[弃用] 编码(java.lang.String) 在 java.net.URLEncoder 已被弃用
我应该改用什么?
使用URLEncoder中的其他encode
方法:
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)
在哪里 :
s - 要翻译的字符串。
enc - 支持的字符编码的名称。
标准字符集:
US-ASCII 七位 ASCII,又名 ISO646-US,又名 Unicode 字符集 ISO-8859-1 的基本拉丁语块 ISO Latin Alphabet No. 1,又名 ISO-LATIN-1
UTF-8八位 UCS 转换格式
UTF-16BE 十六位 UCS 转换格式,大端字节序
UTF-16LE 十六位 UCS 转换格式,little-endian 字节顺序
UTF-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] );
确实会将其标记为折旧。需要的是至少提供一个额外的参数(第一个,下面),理想情况下是两个:
escaped
: 如果 URI 字符序列是转义形式,则为 true。否则为假。charset
: 进行转义编码的字符集字符串,如果需要的话这将针对该类中的非折旧构造函数。所以一个理想的用法是这样的:
new URI( [string], true, StandardCharsets.UTF_8.toString() );
在游戏后期有点疯狂(11 年后的头发 - egad!),但我希望这对其他人有帮助,特别是如果远端的方法仍然需要一个 URI,例如org.apache.commons.httpclient.setURI()
.
作为其他响应的附加参考,您可以使用以下命令,而不是使用“UTF-8” :
HTTP.UTF_8
它从 Java 4 开始作为 org.apache.http.protocol 库的一部分包含在内,自 Android API 1 起也包含在内。