Stay organized with collections
Save and categorize content based on your preferences.
java.nio.charset
Defines charsets, decoders, and encoders, for translating between
bytes and Unicode characters.
Summary of charsets, decoders, and encoders in this package
Class name |
Description
|
Charset |
A named mapping between characters and bytes |
CharsetDecoder |
Decodes bytes into characters |
CharsetEncoder |
Encodes characters into bytes |
CoderResult |
Describes coder results |
CodingErrorAction |
Describes actions to take when coding errors are detected |
A charset is named mapping between sequences of
sixteen-bit Unicode characters and sequences of bytes, in the sense
defined in RFC 2278.
A decoder is an engine which transforms bytes in a specific
charset into characters, and an encoder is an engine which
transforms characters into bytes. Encoders and decoders operate on
byte and character buffers. They are collectively referred to as
coders.
The Charset
class defines methods for
creating coders for a given charset and for retrieving the various
names associated with a charset. It also defines static methods
for testing whether a particular charset is supported, for locating
charset instances by name, and for constructing a map that contains
every charset for which support is available in the current Java
virtual machine.
Most users will not use these classes directly; instead they
will use the existing charset-related constructors and methods in
the String
class, together with the existing
InputStreamReader
and OutputStreamWriter
classes, all of whose implementations
have been reworked to make use of the charset facilities defined in
this package. A small number of changes have been made to the
InputStreamReader
and OutputStreamWriter
classes in order to allow explicit
charset objects to be specified in the construction of instances of
those classes.
Support for new charsets can be made available via the
interface defined in the CharsetProvider
class in the java.nio.charset.spi
package.
Unless otherwise noted, passing a null
argument to a
constructor or method in any class or interface in this package
will cause a NullPointerException
to be thrown.
Classes
Charset |
A named mapping between sequences of sixteen-bit Unicode code units and sequences of
bytes.
|
CharsetDecoder |
An engine that can transform a sequence of bytes in a specific charset into a sequence of
sixteen-bit Unicode characters.
|
CharsetEncoder |
An engine that can transform a sequence of sixteen-bit Unicode characters into a sequence of
bytes in a specific charset.
|
CoderResult |
A description of the result state of a coder.
|
CodingErrorAction |
A typesafe enumeration for coding-error actions.
|
StandardCharsets |
Constant definitions for the standard Charsets .
|
Exceptions
Errors
Classes
Exceptions
Errors
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[],[],null,["# java.nio.charset\n\nAdded in [API level 1](/guide/topics/manifest/uses-sdk-element#ApiLevels) \n\njava.nio.charset\n================\n\nDefines charsets, decoders, and encoders, for translating between bytes and Unicode characters.\n\n| Class name | Description |\n| [Charset](/reference/java/nio/charset/Charset) | A named mapping between characters and bytes |\n| [CharsetDecoder](/reference/java/nio/charset/CharsetDecoder) | Decodes bytes into characters |\n| [CharsetEncoder](/reference/java/nio/charset/CharsetEncoder) | Encodes characters into bytes |\n| [CoderResult](/reference/java/nio/charset/CoderResult) | Describes coder results |\n| [CodingErrorAction](/reference/java/nio/charset/CodingErrorAction) | Describes actions to take when coding errors are detected |\n|--------------------------------------------------------------------|-----------------------------------------------------------|\n[Summary of charsets, decoders, and encoders in this package]\n\nA *charset* is named mapping between sequences of\nsixteen-bit Unicode characters and sequences of bytes, in the sense\ndefined in [*RFC 2278*](http://www.ietf.org/rfc/rfc2278.txt).\nA *decoder* is an engine which transforms bytes in a specific\ncharset into characters, and an *encoder* is an engine which\ntransforms characters into bytes. Encoders and decoders operate on\nbyte and character buffers. They are collectively referred to as\n*coders*.\n\nThe [Charset](/reference/java/nio/charset/Charset) class defines methods for\ncreating coders for a given charset and for retrieving the various\nnames associated with a charset. It also defines static methods\nfor testing whether a particular charset is supported, for locating\ncharset instances by name, and for constructing a map that contains\nevery charset for which support is available in the current Java\nvirtual machine.\n\nMost users will not use these classes directly; instead they\nwill use the existing charset-related constructors and methods in\nthe [String](/reference/java/lang/String) class, together with the existing\n[InputStreamReader](/reference/java/io/InputStreamReader) and [OutputStreamWriter](/reference/java/io/OutputStreamWriter) classes, all of whose implementations\nhave been reworked to make use of the charset facilities defined in\nthis package. A small number of changes have been made to the\n[InputStreamReader](/reference/java/io/InputStreamReader) and [OutputStreamWriter](/reference/java/io/OutputStreamWriter) classes in order to allow explicit\ncharset objects to be specified in the construction of instances of\nthose classes.\n\nSupport for new charsets can be made available via the\ninterface defined in the [CharsetProvider](/reference/java/nio/charset/spi/CharsetProvider) class in the [java.nio.charset.spi](/reference/java/nio/charset/spi/package-summary) package.\n\nUnless otherwise noted, passing a `null` argument to a\nconstructor or method in any class or interface in this package\nwill cause a [NullPointerException](/reference/java/lang/NullPointerException) to be thrown.\n\n\nClasses\n-------\n\n|--------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|\n| [Charset](/reference/java/nio/charset/Charset) | A named mapping between sequences of sixteen-bit Unicode [code units](../../lang/Character.html#unicode) and sequences of bytes. |\n| [CharsetDecoder](/reference/java/nio/charset/CharsetDecoder) | An engine that can transform a sequence of bytes in a specific charset into a sequence of sixteen-bit Unicode characters. |\n| [CharsetEncoder](/reference/java/nio/charset/CharsetEncoder) | An engine that can transform a sequence of sixteen-bit Unicode characters into a sequence of bytes in a specific charset. |\n| [CoderResult](/reference/java/nio/charset/CoderResult) | A description of the result state of a coder. |\n| [CodingErrorAction](/reference/java/nio/charset/CodingErrorAction) | A typesafe enumeration for coding-error actions. |\n| [StandardCharsets](/reference/java/nio/charset/StandardCharsets) | Constant definitions for the standard [Charsets](/reference/java/nio/charset/Charset). |\n\nExceptions\n----------\n\n|------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [CharacterCodingException](/reference/java/nio/charset/CharacterCodingException) | Checked exception thrown when a character encoding or decoding error occurs. |\n| [IllegalCharsetNameException](/reference/java/nio/charset/IllegalCharsetNameException) | Unchecked exception thrown when a string that is not a [legal charset name](/reference/java/nio/charset/Charset#names) is used as such. |\n| [MalformedInputException](/reference/java/nio/charset/MalformedInputException) | Checked exception thrown when an input byte sequence is not legal for given charset, or an input character sequence is not a legal sixteen-bit Unicode sequence. |\n| [UnmappableCharacterException](/reference/java/nio/charset/UnmappableCharacterException) | Checked exception thrown when an input character (or byte) sequence is valid but cannot be mapped to an output byte (or character) sequence. |\n| [UnsupportedCharsetException](/reference/java/nio/charset/UnsupportedCharsetException) | Unchecked exception thrown when no support is available for a requested charset. |\n\nErrors\n------\n\n|----------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [CoderMalfunctionError](/reference/java/nio/charset/CoderMalfunctionError) | Error thrown when the [decodeLoop](/reference/java/nio/charset/CharsetDecoder#decodeLoop(java.nio.ByteBuffer,%20java.nio.CharBuffer)) method of a [CharsetDecoder](/reference/java/nio/charset/CharsetDecoder), or the [encodeLoop](/reference/java/nio/charset/CharsetEncoder#encodeLoop(java.nio.CharBuffer,%20java.nio.ByteBuffer)) method of a [CharsetEncoder](/reference/java/nio/charset/CharsetEncoder), throws an unexpected exception. |\n\n-\n\n Classes\n -------\n\n - [Charset](/reference/java/nio/charset/Charset)\n - [CharsetDecoder](/reference/java/nio/charset/CharsetDecoder)\n - [CharsetEncoder](/reference/java/nio/charset/CharsetEncoder)\n - [CoderResult](/reference/java/nio/charset/CoderResult)\n - [CodingErrorAction](/reference/java/nio/charset/CodingErrorAction)\n - [StandardCharsets](/reference/java/nio/charset/StandardCharsets)\n-\n\n Exceptions\n ----------\n\n - [CharacterCodingException](/reference/java/nio/charset/CharacterCodingException)\n - [IllegalCharsetNameException](/reference/java/nio/charset/IllegalCharsetNameException)\n - [MalformedInputException](/reference/java/nio/charset/MalformedInputException)\n - [UnmappableCharacterException](/reference/java/nio/charset/UnmappableCharacterException)\n - [UnsupportedCharsetException](/reference/java/nio/charset/UnsupportedCharsetException)\n-\n\n Errors\n ------\n\n - [CoderMalfunctionError](/reference/java/nio/charset/CoderMalfunctionError)"]]