<aside> 💡

우리가 키보드에서 A를 누르면 A가 컴퓨터에 저장될 것 같지만, 실제로 컴퓨터는 문자의 의미를 잘 모른다.

키보드를 통해 입력받는 데이터는 숫자이고, 필요할 때 우리는 숫자와 문자를 변환시켜주는 매핑 테이블을 기초로 변환된 데이터를 보고 있는 것이다.

이러한 매핑 테이블에는 아스키 코드표와 유니코드표가 있다. 이러한 매핑테이블을 기초로 문자를 인코딩하고 디코딩하는 것이다.

</aside>

Mapping table

코드표를 mapping table이라 함 아스키 코드표( 1 byte ), 유니코드( 2 byte ), UTF-8( 1~4 byte) 아스키 코드표가 영어만 있기 때문에 전 세계적으로 쓰기 위해 Unicode가 나옴. 하지만 영어권에서 2byte를 쓰기엔 공간낭비때문에 UTF-8이 나옴. 보내는 작업 : 문자, 이미지 등등 - 전송 - 컴퓨터 언어로 바꾸는 작업을 **인코딩(encoding)**이라 함. 받는 작업 : 컴퓨터 언어로 받은걸 문자로 바꾸는걸 디코딩 이라 함. 1byte를 보내고 받는 컴퓨터에서 2byte로 읽으면 글자나 이미지가 깨짐. 그래서 이클립스에서 인코딩 설정을 UTF-8로 바꾸는 거임.

기본 사용법

한 문자를 표현할 때 쓰이며,2바이트 공간을 할당한다.

기본값은 ' ' (\u0000)이다 . 즉 공백이라는 하나의 값이다.

package com.java.datatype01.basic;

public class Datatype09_char {

	public static void main(String[] args) {
		// 기본형 > 문자형(char,2바이트 )
		
		char ch = ' '; //기본값 ' '(공백)
		char ch1='A';
		char ch2='대';
		//String st ="대한민국";
		char ch3 ='a';
		char ch4=97;
		char ch5='\\u0061';
		
		System.out.println(ch);
		System.out.println(ch1);
		System.out.println(ch2);
		System.out.println(ch3);
		System.out.println(ch4);
		System.out.println(ch5);
		
		
		
	}

}

문자형 표현

우리가 키보드로 문자를 치면 사실 시스템에는 숫자가 저장 되고 , 매핑 테이블에 의해서 문자로 사상(mapping)된다.

이런 매핑 테이블의 종류에는 ASCII코드,유니코드 등등이 있다.

ASCII코드(American Standard Code for Information Interchange. 아스키)

컴퓨터 시스템에서 기본적인 문자를 표현하기 위한 방식이다.

아스키파일에서는 각각의 알파벳이나 숫자 그리고 특수문자들이 정의 되어 있다.

총 128개의 문자가 정의되어 있다.

1바이트의 저장 공간을 사용한다.

유니코드

일본어, 중국어, 한국어 등의 비 영어권의 문자를 표시하기 위한 방식이다.

자바도 유니코드 방식을 취하기 때문에 문자형의 저장 공간은 2바이트이다.