본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

유니코드 상호운용성(Unicode interoperability)

원문 보기 위키 갱신

R2에서 유니코드를 어떻게 처리하는지, 특히 키 이름의 NFC 정규화와 파일명 상호운용성에 대해 배워 보아요.

출처: 문서

본문

R2는 Workers 위에 구축되어 있고 유니코드를 기본적으로 지원해요. 종종 간과되는 유니코드의 한 가지 미묘한 점은 유니코드 동등성(Unicode equivalence) ↗︎으로 인한 파일명 상호운용성 ↗︎ 문제예요.

사용자 피드백을 바탕으로, 저장 전에 키 이름을 기본적으로 NFC-normalize하기로 결정했어요. 즉 예를 들어 Héllo와 Héllo는 R2에서는 같은 객체이지만 다른 스토리지 제공자에서는 다른 객체가 돼요. Héllo와 Héllo는 서로 다른 문자 바이트 시퀀스일 수 있지만 똑같이 렌더링돼요.

다만 R2는 표시용 인코딩은 보존해요. 객체를 나열하면 마지막으로 업로드할 때 사용한 인코딩을 그대로 반환받게 돼요.

플랫폼별 차이도 여전히 고려해야 할 부분이 있어요.

  • Windows와 macOS의 파일명은 대소문자를 구분하지 않지만, R2와 Linux는 대소문자를 구분해요.
  • Windows 콘솔의 유니코드 지원은 오류가 발생하기 쉬울 수 있어요. 객체 이름이 올바르게 표시되지 않으면 명령줄 도구를 사용하기 전에 chcp 65001을 실행하거나 Cygwin을 사용해 보세요.
  • Linux는 파일명이 바이트 스트림이므로 유니코드 동등한 서로 다른 파일을 허용해요. Linux에서 유니코드 동등한 파일명은 같은 R2 객체를 가리키게 돼요.

유니코드 동등성을 우회하고 바이트 지향 키 이름을 사용하는 것이 중요하다면 Cloudflare 계정 팀에 문의해 주세요.

더 알아보기 (Learn more)