자바 NIO-CharSet
Java에는 모든 문자에 대해 JVM에서 내부적으로 처리하는 잘 정의 된 유니 코드 코드 단위가 있으므로 Java NIO 패키지는 주로 charset 및 UNICODE의 인코딩 및 디코딩에 사용되는 Charset이라는 추상 클래스를 정의합니다.
표준 문자 세트
Java에서 지원되는 Charset은 다음과 같습니다.
US-ASCII − 7 비트 ASCII 문자.
ISO-8859-1 − ISO 라틴 알파벳.
UTF-8 − 8 비트 UCS 변환 형식입니다.
UTF-16BE − 빅 엔디안 바이트 순서를 사용하는 16 비트 UCS 변환 형식입니다.
UTF-16LE − 이것은 리틀 엔디안 바이트 순서의 16 비트 UCS 변환입니다.
UTF-16 − 16 비트 UCS 변환 형식.
Charset 클래스의 중요한 메서드
forName() −이 메서드는 주어진 문자셋 이름에 대한 문자셋 객체를 생성합니다. 이름은 정식 또는 별칭 일 수 있습니다.
displayName() −이 메서드는 주어진 문자 집합의 정식 이름을 반환합니다.
canEncode() −이 방법은 주어진 문자셋이 인코딩을 지원하는지 여부를 확인합니다.
decode() −이 방법은 주어진 문자셋의 문자열을 유니 코드 문자셋의 문자 버퍼로 디코딩합니다.
encode() −이 방법은 유니 코드 문자셋의 문자 버퍼를 주어진 문자셋의 바이트 버퍼로 인코딩합니다.
예
다음 예제는 Charset 클래스의 중요한 메서드를 보여줍니다.
package com.java.nio;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
public class CharsetExample {
public static void main(String[] args) {
Charset charset = Charset.forName("US-ASCII");
System.out.println(charset.displayName());
System.out.println(charset.canEncode());
String str= "Demo text for conversion.";
//convert byte buffer in given charset to char buffer in unicode
ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes());
CharBuffer charBuffer = charset.decode(byteBuffer);
//convert char buffer in unicode to byte buffer in given charset
ByteBuffer newByteBuffer = charset.encode(charBuffer);
while(newbb.hasRemaining()){
char ch = (char) newByteBuffer.get();
System.out.print(ch);
}
newByteBuffer.clear();
}
}
산출
US-ASCII
Demo text for conversion.