백앤드 이야기/JAVA&Spring

[JAVA] 인코딩과 인코딩 방식

한희성 2019. 9. 9.
반응형

너무 오랜만에 쓰는 블로그라.. 간단하게 쓰고 ㅌㅌ 해야지


예전부터 한번쯤 되새겨보고 싶었던 인코딩과 ~ 인코딩 방식!


인코딩이란?


먼저 위키백과의 사전적 의미를 보자면


부호화(符號化)나 인코딩(encoding)은 정보의 형태나 형식을 변환하는 처리나 처리 방식이다.

문자 인코딩(文字-, 영어: character encoding)은 문자들의 집합을 부호화하는 방법이다.


이런 사전적 의미가 있고, 즉 컴퓨터가 이해할 수 있는 형식으로 바꾸어 주는것을 뜻한다.


인코딩 된 문자는 다시 디코딩하여 원래의 문자나 기호로 표현이 가능하다!


그렇다면 인코딩의 종류는 어떤것들이 있는가 ~? 


ASCII 영문 알파벳과 숫자 문자를 표현하는 대표적인 문자 인코딩이다


아스키는 7bit 인코딩으로, 0~127(128개)의 문자와 숫자 영문 표기가 가능하다. (1비트는 패리티비트)


출처 : 이재욱님이 만든 ASCII Table


다음은 유니코드 협회에서 만든 유니코드!


사전적 의미는 : 유니코드(Unicode)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이며, 유니코드 협회(Unicode Consortium)가 제정한다. 이 표준에는 ISO 10646 문자 집합, 문자 인코딩, 문자 정보 데이터베이스, 문자들을 다루기 위한 알고리즘 등을 포함하고 있다.


즉, 전세계 언어의 문자들을 표현하기 위하여 국제 표준코드표가 생긴것이다.


유니코드와 아스키에 대해 정말 잘 적어주신


https://whatisthenext.tistory.com/103


를 참고하고, 유니코드는 4byte 크기의 표준문자표 이고, 엄청나게 많은 문자와 숫자를 표현할 수 있다.


(U+ 라는 접두어가 있으면 유니코드라는 의미)


이를 각 구역마다 나누어 UTF-7, UTF-8, UTF-16BE, UTF-16LE 등 가변 인코딩 방식이 있다.


UTF-8 : 문자열을 8bit 기반으로 저장하며, 영어는 1byte, 한글은 3byte로 가변 인코딩 방식이다.

UTF-16 : 한글과 영문 모두 2byte 로 저장하지만 그이상 표현 할 수 없는 문자는 특별한 조합으로 4byte 로 저장하기때문에

UTF-16 또한 가변 인코딩 방식이다.


EUC-KR, MS949, CP949


모두 한글표기를 위한 인코딩 방식이다. 2byte로 인코딩하며, CP949 는 EUC-KR의 확장형이며,


이를 MS에서 개선하여 윈도우의 기본 인코딩방식은 MS949 이다. (모든 완성형 한글표기 가능. 꿹쀍뚫) 


base64 참고주소 중 맨 아래 참고



참고 : 

https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C

https://studyforus.tistory.com/167

https://wooeong.tistory.com/entry/%EC%9D%B8%EC%BD%94%EB%94%A9%EA%B3%BC-%EC%9D%B8%EC%BD%94%EB%94%A9-%EB%B0%A9%EC%8B%9D

https://nuli.navercorp.com/sharing/blog/post/1079940

https://effectivesquid.tistory.com/entry/Base64-%EC%9D%B8%EC%BD%94%EB%94%A9%EC%9D%B4%EB%9E%80

        

반응형

댓글

💲 추천 글