我试图在这段代码中使用常量而不是字符串文字:
new InputStreamReader(new FileInputStream(file), "UTF-8")
Run Code Online (Sandbox Code Playgroud)
"UTF-8"经常出现在代码中,而且更好地引用一些static final变量.你知道我在JDK哪里可以找到这样一个变量吗?
顺便说一句,第二个想法,这样的常量是糟糕的设计:公共静态文字...不是数据复制的解决方案
Rog*_*ger 782
在Java 1.7+中,java.nio.charset.StandardCharsets定义了Charset包含的常量UTF_8.
import java.nio.charset.StandardCharsets;
...
StandardCharsets.UTF_8.name();
Run Code Online (Sandbox Code Playgroud)
对于Android:minSdk 19
yeg*_*256 130
现在我org.apache.commons.lang3.CharEncoding.UTF_8从commons-lang使用常量.
Dan*_*den 61
在谷歌番石榴库(我会强烈建议,无论如何,如果你用Java做的工作)有一个Charsets与像静态字段级的Charsets.UTF_8,Charsets.UTF_16等
从Java 7开始,你应该只使用java.nio.charset.StandardCharsets类似的常量.
请注意,这些常量不是字符串,它们是实际的Charset实例.采用charset名称的所有标准API也都有一个重载,它会占用Charset您应该使用的对象.
没有(至少在标准Java库中).字符集因平台而异,因此Java中没有标准列表.
但是有一些第三方库包含这些常量.其中一个是Guava(谷歌核心库):http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Charsets.html
在 Java 1.7+ 中
不要使用“UTF-8”字符串,而是使用Charset类型参数:
import java.nio.charset.StandardCharsets
...
new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8);
Run Code Online (Sandbox Code Playgroud)
您可以使用Charset.defaultCharset()API或file.encoding属性.
但如果你想要自己的常数,你需要自己定义它.
如果您在Java/Android上使用OkHttp,您可以使用以下常量:
import com.squareup.okhttp.internal.Util;
Util.UTF_8; // Charset
Util.UTF_8.name(); // String
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
262680 次 |
| 最近记录: |