[iOS] ASCII, Unicode

Eugenie·2022년 7월 14일
0

ASCII [ American Standard Code for Information Interchange ]

ASCII
미국 국립 표준 협회에서 표준화한 정보교환용 7비트 부호체계이다.

ASCII 는
영문 알파벳을 사용하는 대표적인 문자 인코딩이다.

🍎 문자 인코딩 [ Character Encoding ]

사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것
복잡한 신호를 0과 1의 디지털 신호 (2진수) 로 변환하는 것

ASCII 는 33 개의 출력 불가능한 제어 문자들과
공백을 비롯한 95개의 출력 가능한 문자들로,
000(0x00) 부터 127(0x7F) 까지 총 128 개로 이루어져 있다.

ASCII 는 2바이트 이상의 다양한 코드들을 표현할 수 없기 때문에
현대에는 유니코드 [ Unicode ] 를 더 많이 사용한다.

Unicode

Unicode 는
전 세계의 모든 문자를 컴퓨터에서 일관되기 표현하고
다룰 수 있도록 설계된 산업 표준이다.

ASCII 가 널리 사용되면서
다양한 ASCII 기반의 확장 인코딩들이 등장했고,
이들을 묶어서 ASCII 라고 부르기도 한다.

ASCII to Int

let char = "A"

print(UnicodeScalar(char)?.value) // Optional(65) - UInt32

UnicodeScalar 를 위와 같이 사용하면
A 의 아스키코드 값인 65 를 얻을 수 있다.

cf. 🍎 UInt32 타입이므로, 값을 사용하기 위해서는 Int 로 캐스팅이 필요하다.

Int to ASCII

let num = 97

print(UnicodeScalar(num)) // Optional("a")

String to ASCII

let str = "abcDEF"

for index in str.utf16 {
	print(index)
    // 97
    // 98
    // 99
    // 68
    // 69
    // 70
}

Korean to ASCII

let char = "탱"

print(UnicodeScalar(char)?.value) // Optional(53489) - UInt32
cf. 🍎 UInt32 타입이므로, 값을 사용하기 위해서는 Int 로 캐스팅이 필요하다.
❗️ 모두 한 글자, Character 타입이어야 가능하다.

📚 Reference
ASCII(아스키 코드)란 무엇인가? (유니코드, 패리티 검사 등)
Swift) Unicode to Int/Int to Unicode
UnicodeScalar
String.UTF16View
String.UnicodeScalarView

profile
🌱 iOS developer

0개의 댓글