当前位置:  开发笔记 > 编程语言 > 正文

不推荐使用java.net.URLEncoder.encode(String),我应该使用什么呢?

如何解决《不推荐使用java.net.URLEncoder.encode(String),我应该使用什么呢?》经验,为你挑选了3个好方法。

使用时收到以下警告java.net.URLEncoder.encode:

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

我应该用什么呢?



1> Will Wagner..:

使用URLEncoder中的其他encode方法:

URLEncoder.encode(String, String)

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

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


然后你必须处理UnsupportedEncodingException,即使在任何地方都应该支持UTF-8.
@jsh:我很困惑,为什么不应该有一个URLDecoder?为什么这会让Java膨胀?这些是静态方法.输入任何一种都需要花费相同的努力.如果你喜欢Python,你为什么要用Java编程?是因为更多的人使用Java而不是Python而且你得到的是Java作业而不是Python作业?
他称之为臃肿,因为它占据了全局类命名空间.为什么有URLEncoder.encode和URLDecoder.decode,你可以有URL.encode和URL.decode,甚至只有URLEncoder.decode?为什么要把它全部多余和臃肿?因为它的java.
@tc.:Java 7引入了这些常量:`StandardCharsets.US_ASCII`,`StandardCharsets.UTF_8`等.不幸的是,`URLEncoder.encode`不接受`Charset` ...(但许多其他的方法都可以).
次要建议 - 使用`URLEncoder.encode(,StandardCharsets.UTF_8.name())`.使用静态常量`UTF_8`的`toString()`方法作为字符编码方案抛出`java.nio.charset.IllegalCharsetNameException:java.nio.charset.CharsetICU [UTF-8]`作为`toString()`返回"java.nio.charset.CharsetICU [UTF-8]".要获得所需的"UTF-8",请使用其`name()`方法.
@stepanian是的,你得工作的地方.我通常使用的python包将所有这些编码和解码实用程序放在一个屋檐下.我主要添加了这个评论,因为我必须去找到URLDecoder,我认为它可能会节省几分钟,知道这是必需的.

2> Atul Darne..:

你应该使用:

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



3> Jorgesys..:

使用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八位UCS转换格式

UTF-16BE 16位UCS转换格式,大端字节顺序

UTF-16LE 16位UCS转换格式,little-endian字节顺序

UTF-16 16位UCS转换格式,由可选的字节顺序标记标识的字节顺序

例:

import java.net.URLEncoder;

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

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有