5월 16일 내용정리-2
1.아스키코드(ASCII):미국 정보교환 표준코드
영문 알파벳, 숫자, 특수기호, 제어코드로 구성(실제 8bit 정보포함)
'A'->65 숫자 65로 넘었을때 이진수로 처리해줌
2.각 국가별로 세분화되어 있던 코드를 unicode로 통일시켜줌
3.한글전용문자셋:EUC-KR(ks완성형->2350자 표현, 한국산업규격으로 지정,ASCII코드가 포함), MS949(마이크로소프트사에서 만든 ks완성형,비표준,ASCII코드가 포함)
4.문자열.getBytes(문자셋)->문자셋을 기준을 문자열을 byte[]로 분해
new String(byte[], 문자셋) ->문자셋을 기준으로 byte[]을 문자열로 조합
5.UTF-8 과 UTF-16
UTF-8:글자의 길이가 가변적인 인코딩 방식(1~4byte)
1byte:아스키코드
3byte:한글
웹서버, 데이터베이스,리눅스,Mac 시스템의 기본 인코딩 방식
6.UTF-16:글자의 길이가 고정적인 인코딩 방식 (2byte)
한글/영문-2byte
저장문자열 앞에 BOM(byter Order Mark)코드 삽입
package study_0516_01;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
public class code {
public static void main(String[] args) throws UnsupportedEncodingException{
byte[]b1="a".getBytes("EUC-KR"); //getBytes()는 문자열을 분해하여 배열에 넣어죠
byte[]b2="a".getBytes("MS949"); //getBytes()는 문자열을 분해하여 배열에 넣어죠
byte[]b3="가".getBytes("EUC-KR"); //getBytes()는 문자열을 분해하여 배열에 넣어죠
byte[]b4="가".getBytes("MS949"); //getBytes()는 문자열을 분해하여 배열에 넣어죠
System.out.println(b1.length);
System.out.println(b2.length);
System.out.println(b3.length);
System.out.println(b4.length);
//======================================================================================
byte[]b5="abc".getBytes("UTF-8"); //getBytes()는 문자열을 분해하여 배열에 넣어죠
byte[]b6="abc".getBytes("UTF-16"); //getBytes()는 문자열을 분해하여 배열에 넣어죠
byte[]b7="가나다".getBytes("UTF-8"); //getBytes()는 문자열을 분해하여 배열에 넣어죠
byte[]b8="가나다".getBytes("UTF-16"); //getBytes()는 문자열을 분해하여 배열에 넣어죠
System.out.println(b5.length);
System.out.println(b6.length); //BOM 2byte가 포함됨
System.out.println(b7.length);
System.out.println(b8.length); //BOM 2byte가 포함됨
Charset cs1=Charset.defaultCharset();
System.out.println(cs1);
}
}