Swift Academy · 강의

인코딩 뷰: utf8, utf16, unicodeScalars

서로 다른 인코딩 표현을 다룹니다.

레슨 4/413개 단계

인코딩 뷰: utf8, utf16, unicodeScalars은(는) CoddyKit의 무료 Swift Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Swift Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Swift Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

문자열 인코딩 뷰

Swift의 String은 동일한 텍스트를 서로 다른 수준에서 보여 주는 여러 뷰를 제공합니다: utf8, utf16, unicodeScalars.

let s = "Hi"
print(Array(s.utf8))
print(Array(s.utf16))

utf8 뷰

.utf8 뷰는 문자열을 UTF-8 코드 단위(bytes)의 시퀀스로 노출합니다. ASCII 문자는 각각 1바이트입니다.

let s = "AB"
for byte in s.utf8 {
    print(byte)
}

여러 바이트로 이루어진 UTF-8

ASCII가 아닌 문자는 여러 UTF-8 bytes를 사용합니다. accented 문자나 emoji는 여러 코드 단위로 확장됩니다.

let s = "\u{e9}"
print("UTF-8 bytes:", Array(s.utf8))

utf16 뷰

.utf16 뷰는 UTF-16 코드 단위를 보여 줍니다. 대부분의 일반적인 문자는 단위 하나를 사용하고, 기본 평면을 벗어난 문자는 두 단위인 서로게이트 쌍을 사용합니다.

let s = "A\u{1F600}"
print("UTF-16 units:", Array(s.utf16))

unicodeScalars 뷰

.unicodeScalars 뷰는 문자와 원시 bytes 사이에 있는 기반 코드 포인트를 노출합니다.

let s = "Hi\u{1F600}"
for scalar in s.unicodeScalars {
    print(scalar.value)
}

뷰 비교하기

인코딩은 문자를 서로 다른 개수의 단위로 표현하므로 동일한 문자열도 각 뷰에서 서로 다른 개수를 반환합니다.

let s = "\u{1F600}"
print("characters:", s.count)
print("scalars:", s.unicodeScalars.count)
print("utf16:", s.utf16.count)
print("utf8:", s.utf8.count)

UTF-8을 사용하는 이유

UTF-8은 파일과 네트워크에서 가장 널리 사용되는 인코딩입니다. .utf8 뷰를 사용하면 바로 그 bytes를 만들 수 있습니다.

let message = "OK"
let bytes = Array(message.utf8)
print(bytes)

UTF-16을 사용하는 이유

UTF-16은 일부 플랫폼과 API에서 사용됩니다. .utf16 뷰를 사용하면 이러한 대상과 상호 운용할 수 있습니다.

let s = "Hi"
print("UTF-16 count:", s.utf16.count)

문자열 재구성하기

String(decoding:as:)를 사용하여 UTF-8 bytes에서 문자열을 다시 만들 수 있으며, 왕복 변환을 완성할 수 있습니다.

let bytes: [UInt8] = Array("Swift".utf8)
let restored = String(decoding: bytes, as: UTF8.self)
print(restored)

bytes와 문자 개수 비교하기

ASCII가 아닌 텍스트에서는 bytes 길이와 문자 길이가 다릅니다. 작업에 맞는 뷰를 선택하십시오. 표시가 필요한지 저장이 필요한지에 따라 달라집니다.

let s = "caf\u{e9}"
print("Characters:", s.count)
print("UTF-8 bytes:", s.utf8.count)

올바른 뷰 선택하기

표시 로직에는 문자를, 유니코드 분석에는 스칼라를, 인코딩과 저장 및 상호 운용에는 utf8 또는 utf16을 사용하십시오.

let s = "A\u{e9}\u{1F600}"
print("chars:", s.count, "scalars:", s.unicodeScalars.count, "utf8:", s.utf8.count)

빠른 확인

utf8 뷰에 무엇이 들어 있는지 떠올려 보십시오.

복습: 인코딩 뷰

String이 동일한 텍스트에 대해 utf8, utf16, unicodeScalars 뷰를 제공한다는 것을 배웠습니다. 인코딩마다 사용하는 단위의 크기가 다르므로 각 뷰의 개수도 다릅니다. 표시, 분석, 저장 및 네트워크 전송을 위한 인코딩 중 무엇이 필요한지에 따라 뷰를 선택해야 합니다.

let s = "Hi\u{1F600}"
print("chars:", s.count, "utf8:", s.utf8.count, "utf16:", s.utf16.count)
무료로 시작

AI 튜터와 함께 Swift을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
122
레슨
409

자주 묻는 질문

“인코딩 뷰: utf8, utf16, unicodeScalars” 강의는 무료인가요?

네 — “인코딩 뷰: utf8, utf16, unicodeScalars” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Swift Academy 강의 전체를 잠금 해제할 수 있습니다. Swift Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“인코딩 뷰: utf8, utf16, unicodeScalars”에서 뭘 배우나요?

서로 다른 인코딩 표현을 다룹니다. 브라우저에서 직접 실행하는 실습 코드로 Swift Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Swift Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Swift Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“인코딩 뷰: utf8, utf16, unicodeScalars” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Swift Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Swift Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 문자와 자소 클러스터
  2. 유니코드 스칼라와 코드 포인트
  3. 문자 세기와 순회
  4. 인코딩 뷰: utf8, utf16, unicodeScalars
← Swift Academy(으)로 돌아가기