NB Если классы фабрики/синглтона charset могут принимать Enum качестве параметра, а также String, Enum is, IMO, всегда более безопасный и лучший вариант.
Ответ 2
Проще использовать StandardCharsets.UTF_8, поскольку это избавляет вас от необходимости иметь дело с UnsupportedEncodingExceptions
Ответ 3
К вашему сведению, для Java 7/Tomcat 8.5 я использую: -Dfile.encoding = UTF-8 -Dclient.encoding.override = UTF-8
Но для Java 8/Tomcat 8.5 я получил: java.nio.charset.IllegalCharsetNameException: UTF-8
Поэтому я перешел на UTF8
Ответ 4
Стандартное название - "UTF-8". Исходный код (я использую jdk1.8.0_20) показывает более подробно:
UTF_8 extends Unicode {
public UTF_8() {
super("UTF-8", StandardCharsets.aliases_UTF_8); // show other aliases
// static final String[] aliases_UTF_8 = new String[]{"UTF8", "unicode-1-1-utf-8"};
}
public String historicalName() {
// return old name of UTF-8
return "UTF8";
}