Charset
represents a character encoding scheme that maps characters to bytes and vice versa. It’s part of the java.nio.charset
package and is essential for handling text in different languages and platforms.
Why Charset?
Computers store data as bytes, but human languages use characters. A Charset defines how characters like 'A'
, 'ä½ '
, or '😊'
are translated into bytes and back.
Common Charsets

Commonly Used Methods

Simple Program: Charset Conversion
import java.nio.charset.Charset; import java.util.Set; public class CharsetSimpleExample { public static void main(String[] args) { Charset utf8 = Charset.forName("UTF-8"); System.out.println("Charset name: " + utf8.name()); System.out.println("Can encode: " + utf8.canEncode()); Set<String> aliases = utf8.aliases(); System.out.println("Aliases for UTF-8:"); for (String alias : aliases) { System.out.println(alias); } } }
Output
Charset name: UTF-8
Can encode: true
Aliases for UTF-8:
unicode-1-1-utf-8
UTF8
Code language: JavaScript (javascript)
The Charset
class in Java (from the java.nio.charset
package) plays a vital role in converting between characters and bytes, ensuring proper encoding and decoding of textual data across different platforms and languages. It enables Java applications to handle various character sets like UTF-8
, ISO-8859-1
, and US-ASCII
with ease and accuracy.
Working closely with NIO buffers (CharBuffer
and ByteBuffer
), Charset
supports:
- Character encoding (char → byte),
- Character decoding (byte → char),
- Compatibility with global text formats and external systems.
With Charset
, developers can write internationalized applications and avoid common pitfalls like mojibake (garbled characters), especially when reading/writing files, communicating over networks, or interacting with databases.