RUST · STRING

UTF-8 문자열을 보는 세 층

문자열 인덱싱이 단순하지 않은 이유는 같은 글자열도 바이트, 유니코드 스칼라 값, 문자소 클러스터라는 서로 다른 단위로 읽히기 때문입니다.

예시: नमस्ते

units
BytesUTF-8 저장 단위. 이 예시는 18바이트입니다.
chars()유니코드 스칼라 값 6개로 순회합니다.
graphemes사람이 보는 글자 단위는 보통 4개입니다.
index 금지중간 바이트를 자르면 유효한 문자가 깨집니다.
바이트스칼라 값문자소사용자 표시

UTF-8 문자열을 보는 세 층 선택 기준

api
저장/슬라이스바이트 경계를 확인하고 범위를 잘라야 합니다.
문자 순회chars()는 문자의 의미 단위가 아니라 스칼라 값 단위입니다.
사용자 글자문자소 클러스터가 필요하면 별도 크레이트를 고려합니다.
성능인덱스 대신 반복자를 쓰면 UTF-8 검사를 명확히 드러냅니다.