# java.nio.charset

***

**1. Creating a Charset**

```java
Charset charset = Charset.forName("UTF-8");
```

**2. Encoding a String**

```java
byte[] bytes = "Hello".getBytes(charset);
```

**3. Decoding Bytes**

```java
String str = new String(bytes, charset);
```

**4. Getting the Charset for a Given Locale**

```java
Charset charset = Charset.defaultCharset();
```

**5. Getting the Available Charsets**

```java
Set<Charset> charsets = Charset.availableCharsets().keySet();
```

**6. Charset Encoding**

```java
CharsetEncoder encoder = charset.newEncoder();
```

**7. Charset Decoding**

```java
CharsetDecoder decoder = charset.newDecoder();
```

**8. Charset Normalized Name**

```java
String normalizedName = charset.name();
```

**9. Charset Encoding with a BOM**

```java
CharsetEncoder encoder = charset.newEncoder().onMalformedInput(CodingErrorAction.REPLACE).onUnmappableCharacter(CodingErrorAction.REPLACE);
```

**10. Charset Decoding with a BOM**

```java
CharsetDecoder decoder = charset.newDecoder().onMalformedInput(CodingErrorAction.REPLACE).onUnmappableCharacter(CodingErrorAction.REPLACE);
```

**11. Charset Canonical Name**

```java
String canonicalName = charset.canonicalName();
```

**12. Charset Aliases**

```java
Set<String> aliases = charset.aliases();
```

**13. Encoding a String with a BOM**

```java
byte[] bytes = "Hello".getBytes(charset, true);
```

**14. Decoding Bytes with a BOM**

```java
String str = new String(bytes, 0, bytes.length, charset, true);
```

**15. Charset isRegistered**

```java
boolean registered = Charset.isRegistered(charset);
```

**16. Charset isSupported**

```java
boolean supported = Charset.isSupported(charset);
```

**17. Charset Get Encoding**

```java
String encoding = charset.displayName();
```

**18. Charset Get Decoding**

```java
String decoding = charset.displayName();
```

**19. Charset isLegalName**

```java
boolean legalName = Charset.isLegalName(charset.name());
```

**20. Charset Comparison**

```java
int comparison = charset.compareTo(otherCharset);
```

**21. Charset Hash Code**

```java
int hashCode = charset.hashCode();
```

**22. Charset Equals**

```java
boolean equals = charset.equals(otherCharset);
```

**23. Charset ToString**

```java
String str = charset.toString();
```

**24. Charset New Instance**

```java
Charset charset = Charset.newInstance(charset.name());
```

**25. Charset Support Arrays**

```java
byte[] bytes = { 0x01, 0x02, 0x03 };
char[] chars = { 'a', 'b', 'c' };
Charset charset = Charset.forName("UTF-8");
ByteBuffer byteBuffer = ByteBuffer.wrap(bytes);
CharBuffer charBuffer = charset.decode(byteBuffer);
byteBuffer = charset.encode(charBuffer);
```

**26. Charset Support Strings**

```java
String str = "Hello";
Charset charset = Charset.forName("UTF-8");
byte[] bytes = str.getBytes(charset);
String decodedStr = new String(bytes, charset);
```

**27. Charset Support Input/Output Streams**

```java
Charset charset = Charset.forName("UTF-8");
Reader reader = new InputStreamReader(new FileInputStream("file.txt"), charset);
Writer writer = new OutputStreamWriter(new FileOutputStream("file.txt"), charset);
```

**28. Charset Support File Encoding**

```java
Charset charset = Charset.forName("UTF-8");
Files.write(Paths.get("file.txt"), "Hello".getBytes(charset));
String str = new String(Files.readAllBytes(Paths.get("file.txt")), charset);
```

**29. Charset Support Socket Communication**

```java
Charset charset = Charset.forName("UTF-8");
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), charset));
PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), charset));
```

**30. Charset Support Databases**

```java
Charset charset = Charset.forName("UTF-8");
PreparedStatement statement = connection.prepareStatement("UPDATE table SET name = ? WHERE id = ?");
statement.setString(1, "John Doe", charset);
statement.setInt(2, 1);
statement.executeUpdate();
```

**31. Charset Support XML**

```java
Charset charset = Charset.forName("UTF-8");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new FileInputStream("file.xml")));
```

**32. Charset Support JSON**

```java
Charset charset = Charset.forName("UTF-8");
JSONObject jsonObject = new JSONObject(new String(Files.readAllBytes(Paths.get("file.json")), charset));
```

**33. Charset Support CSV**

```java
Charset charset = Charset.forName("UTF-8");
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("file.csv"), charset));
String[] line = reader.readLine().split(",");
```

**34. Charset Support Regular Expressions**

```java
Charset charset = Charset.forName("UTF-8");
String regex = "[a-zA-Z]+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher("Hello World");
```

**35. Charset Support Internationalization**

```java
Charset charset = Charset.forName("UTF-8");
Locale locale = Locale.getDefault();
ResourceBundle bundle = ResourceBundle.getBundle("messages", locale);
```

**36. Charset Support Web Services**

```java
Charset charset = Charset.forName("UTF-8");
HttpClient httpClient = new HttpClient();
HttpRequest request = new HttpRequest("http://example.com");
HttpResponse response = httpClient.execute(request);
String body = response.getResponseBodyAsString(charset);
```

**37. Charset Support Error Handling**

```java
Charset charset = Charset.forName("UTF-8");
try {
    String str = new String(bytes, charset);
} catch (UnsupportedCharsetException e) {
    // Handle unsupported charset
}
```

**38. Charset Support Character Sets**

```java
Charset charset = Charset.forName("UTF-8");
Set<String> charsets = Charset.availableCharsets().keySet();
for (String charsetName : charsets) {
    Charset charset = Charset.forName(charsetName);
}
```

**39. Charset Support Code Pages**

```java
Charset charset = Charset.forName("CP1252");
```

**40. Charset Support Legacy Encodings**

```java
Charset charset = Charset.forName("ISO-8859-1");
```

**41. Charset Support Historical Encodings**

```java
Charset charset = Charset.forName("EUC-JP");
```

**42. Charset Support Emerging Encodings**

```java
Charset charset = Charset.forName("UTF-16LE");
```

**43. Charset Support Non-Unicode Encodings**

```java
Charset charset = Charset.forName("GBK");
```

**44. Charset Support Encodings with Special Features**

```java
Charset charset = Charset.forName("Shift_JIS");
```

**45. Charset Support Encodings with Byte Order Marks**

```java
Charset charset = Charset.forName("UTF-16BE");
```

**46. Charset Support Encodings with State Machines**

```java
Charset charset = Charset.forName("UTF-32LE");
```

**47. Charset Support Encodings with Surrogate Pairs**

```java
Charset charset = Charset.forName("UTF-32BE");
```

**48. Charset Support Extended Encodings**

```java
Charset charset = Charset.forName("CESU-8");
```

**49. Charset Support Custom Encodings**

```java
Charset charset = Charset.forName("MyCustomCharset");
```

**50. Charset Support Encodings for Specific Languages**

```java
Charset charset = Charset.forName("ISO-8859-7");
```
