我试图在这段代码中使用常量而不是字符串文字:
new InputStreamReader(new FileInputStream(file), "UTF-8")
“UTF-8”经常出现在代码中,最好是引用一些静态的final变量。你知道我在JDK的哪里可以找到这样一个变量吗?
顺便说一句,仔细想想,这样的常量是糟糕的设计:公共静态字面量…不是数据复制的解决方案吗
我试图在这段代码中使用常量而不是字符串文字:
new InputStreamReader(new FileInputStream(file), "UTF-8")
“UTF-8”经常出现在代码中,最好是引用一些静态的final变量。你知道我在JDK的哪里可以找到这样一个变量吗?
顺便说一句,仔细想想,这样的常量是糟糕的设计:公共静态字面量…不是数据复制的解决方案吗
当前回答
如果这个页面出现在某人的网页搜索中,从Java 1.7开始,你现在可以使用Java .nio.charset. standardcharsets来访问标准字符集的常量定义。
其他回答
如果你在Java/Android上使用OkHttp,你可以使用以下常量:
import com.squareup.okhttp.internal.Util;
Util.UTF_8; // Charset
Util.UTF_8.name(); // String
在Java 1.7+中,Java .nio. Charset . standardcharsets为Charset定义常量,包括UTF_8。
import java.nio.charset.StandardCharsets;
...
StandardCharsets.UTF_8.name();
Android: minSdk 19
标准的常量定义。这些 字符集保证在Java的每个实现上都可用 平台。自1.7年
package java.nio.charset;
Charset utf8 = StandardCharsets.UTF_8;
在Java 1.7+中
不要使用“UTF-8”字符串,而是使用Charset类型参数:
import java.nio.charset.StandardCharsets
...
new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8);
您可以使用Charset.defaultCharset() API或文件。编码属性。
但如果你想要自己的常数,你需要自己定义它。