我试图在这段代码中使用常量而不是字符串文字:
new InputStreamReader(new FileInputStream(file), "UTF-8")
“UTF-8”经常出现在代码中,最好是引用一些静态的final变量。你知道我在JDK的哪里可以找到这样一个变量吗?
顺便说一句,仔细想想,这样的常量是糟糕的设计:公共静态字面量…不是数据复制的解决方案吗
我试图在这段代码中使用常量而不是字符串文字:
new InputStreamReader(new FileInputStream(file), "UTF-8")
“UTF-8”经常出现在代码中,最好是引用一些静态的final变量。你知道我在JDK的哪里可以找到这样一个变量吗?
顺便说一句,仔细想想,这样的常量是糟糕的设计:公共静态字面量…不是数据复制的解决方案吗
当前回答
这个常量也可以在类org.apache.commons.codec.CharEncoding中使用(包括:UTF-16、US-ASCII等)。
其他回答
这个常量也可以在类org.apache.commons.codec.CharEncoding中使用(包括:UTF-16、US-ASCII等)。
现在我使用来自common -lang的常量org.apache.commons.lang3.CharEncoding.UTF_8。
在Java 7引入Java .nio.charset. standardcharsets后,类org.apache.commons.lang3.CharEncoding.UTF_8已被弃用
@see JRE字符编码名称 @since 2.1 Java 7引入了{@link Java .nio.charset。StandardCharsets},将这些常量定义为 {@link字符集}对象。使用{@link Charset#name()}获取该类中提供的字符串值。 这个类将在未来的版本中删除。
在Java 1.7+中
不要使用“UTF-8”字符串,而是使用Charset类型参数:
import java.nio.charset.StandardCharsets
...
new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8);
在Java 1.7+中,Java .nio. Charset . standardcharsets为Charset定义常量,包括UTF_8。
import java.nio.charset.StandardCharsets;
...
StandardCharsets.UTF_8.name();
Android: minSdk 19