자바기초(자바 인코딩 방식)

bitna's study note·2022년 5월 16일
0

자바

목록 보기
86/119

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);
	}

}
profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글

관련 채용 정보