JDK7 introduced the class java.nio.charset.StandardCharsets
. It provides constants for all charsets that are guaranteed to be
available on every implementation of the Java platform.
These constants should be preferred to:
- the use of a String such as "UTF-8" which has the drawback of requiring the catch
/throw
of an
UnsupportedEncodingException
that will never actually happen
- the use of Guava’s Charsets
class, which has been obsolete since JDK7
try { byte[] bytes = string.getBytes("UTF-8"); // Noncompliant; use a String instead of StandardCharsets.UTF_8 } catch (UnsupportedEncodingException e) { throw new AssertionError(e); } // ... byte[] bytes = string.getBytes(Charsets.UTF_8); // Noncompliant; Guava way obsolete since JDK7
byte[] bytes = string.getBytes(StandardCharsets.UTF_8)