이번에는 특수문자를 출력하는 연습을 해보자.
키보드로 입력할 수 없는 다음 모양을 출력해보자.
(** 참고 : 운영체제의 문자 시스템에 따라 아래와 같은 모양이 출력되지 않을 수 있다.)
┌┬┐
├┼┤
└┴┘
참고
다음과 같은 유니코드로 특수문자를 표현한다고 하자.
(운영체제 또는 컴파일러에 따라 사용되는 문자의 코드표가 다르다.)
--------------------------------------------------------------
문자 인코딩
문자를 입출력할 때 컴퓨터가 이해할 수 있도록 부호화하고, 인간이 이해할 수 있도록 복호화 하는 문자 인코딩 과정이 필요하다.
문자셋은
ASCII 코드처럼 문자를 더이상 추가할 수 없는 경우와
UNICODE 처럼 문자를 계속 추가할 수 있는 경우가 존재한다.
Q. 왜 ASCII 코드는 문자를 추가할 수 없고 unicode 는 문자를 추가할 수 있을까?
아스키코드는 1바이트만 이용(SBCS:Single-Byte Character Set), 유니코드는 여러 바이트를 이용함(MBCS:Multi-Byte Character Set)
문자 인코딩 형태
특정 문자 집합 안의 문자를 컴퓨터에게 읽힐 목적으로 일정한 범위 안의 정수값을 변환하는 방법.
UTF-8 : 8 bit 숫자의 집합으로 나타냄
UTF-16 : 16 bit 숫자의 집합으로 나타냄
Q. 8비트, 16비트의 차이는 무엇이고 어디에 사용되는가?
?.?
UTF 는 몇 비트를 인덱스로 사용함 인덱스로 사용하는 비트 수는 - 뒤의 숫자임.
--------------------------------------------------
python 문자 인코딩 코드 짜기
ㅁ 아스키 코드 변환:
#문자-> 아스키코드
s = 's'
askii_s = ord(s)
print( askii_s )
>>115
#아스키코드 -> 문자
character_s = chr(askii_s)
print( character_s )
>> 's'
ㅁ 유니코드 변환
# 특수 문자의 데이터 이름 반환:
s = '┌'
print(s)
print(unicodedata.name(s))
>>BOX DRAWINGS LIGHT DOWN AND RIGHT
# 특수문자의 데이터 이름으로 해당 문자를 반환:
print( unicodedata.lookup('BOX DRAWINGS LIGHT DOWN AND RIGHT'))
>>┌
#특수문자를 utf 형태로 인코딩 :
_s = s.encode('utf-8')
print(_s)
>>b'\xe2\x94\x8c'
#특수문자를 utf 형태로 디코딩 :
__s = _s.decode('utf-8')
print(__s)
>>┌
ㅁ 유니코드 문자표에서 하나하나 찾기
print('\u250C')
>>┌
도움이 되는 블로그
'오늘의 공부 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 조이스틱 (0) | 2020.02.26 |
---|---|
[프로그래머스] level 1 - 체육복 (0) | 2020.02.26 |
[python] 진수 표현법 (0) | 2020.02.17 |
[code up] 변수 출력하기 (0) | 2020.02.16 |
[code up] 기초 100제 (0) | 2020.02.16 |