오늘 인코딩, byte 공부한 것

ino5·2022년 6월 6일
0
package javastudy.temp;

import java.io.IOException;
import java.io.InputStream;

public class SystemInRead {
	public static void main(String[] args) throws IOException {
		byte[] datas = new byte[100];
		
		InputStream is = System.in;
		int nameBytes = is.read(datas);
		String name = new String(datas, 0, nameBytes);
		System.out.println(name);
		for (int i = 0; i < name.length(); i++) {
			int nCode = (int) name.charAt(i);
			System.out.println(nCode);
			System.out.println(Integer.toBinaryString(nCode));
		}
		System.out.println("byte");
		for (int i = 0; i < nameBytes - 2; i++) {
			int nByte = (int)datas[i];
			System.out.println(nByte);
			System.out.println(Integer.toBinaryString(nByte).substring(24));
		}
	}
}

문자 인코딩이란

  • 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것

한글 인코딩

  • ECU-KR과 UTF-16은 한글 2byte 사용, UTF-8은 3byte 사용

UTF-8

  • 한글은 3byte, 영어는 1byte로 나타낸다. 그래서 자바에서도 byte 배열을 영어는 1바이트만 사용한다.

UTF-8 인코딩 방법


'가'의 유니코드 값

44032
1010 1100 0000 0000 (2)

UTF-8로 '가' 나타내기 (3byte)

1110 1010

10 110000

10 000000

profile
지금은 네이버 블로그만 해요... https://blog.naver.com/chero77

0개의 댓글