출력은 locale
대소문자를 구분하는 것 같습니다.
% locale -a
C
en_AU.utf8
en_US.utf8
POSIX
더 일반적으로 하이픈과 대문자를 보았습니다 UTF-8
.
utf8/UTF-8의 표준 이름은 무엇입니까?
답변1
TL;DR: 아니요.
utf8
IANA 문자 세트는-
문자를 제거하므로 인용되지 않습니다.- IANA 문자 세트 이름은 모두 대소문자입니다.존재하다예민한.
- 따라서 다음을 참조한다.RFC3629: UTF-8, ISO 10646의 변환 형식:
UTF-8
utf-8
uTf-8
(모든 하이픈에 유의하세요)
- 대소문자를 구분합니다.별명위에서 언급한이름:
csUTF8
세부 사항
POSIX.1-2017, 일부8.2 국제화 변수
로케일 값이 다음 형식인 경우:
language[_territory][.codeset]
이는 언어, 지역 및 코드 세트에 대한 설정이 구현에 따라 정의되는 구현 제공 로케일을 나타냅니다.
그러나 POSIX.1은 정의의 상세한 구현을 유지하지만 IANA는 이에 대해 말할 것이 있습니다.
RFC2978 IANA 문자 집합 등록 절차
2.3. 명명 요구 사항문자 집합 기본 이름을 정의합니다.
mime-charset = 1*mime-charset-chars
mime-charset-chars = ALPHA / DIGIT /
"!" / "#" / "$" / "%" / "&" /
"'" / "+" / "-" / "^" / "_" /
"`" / "{" / "}" / "~"
ALPHA = "A".."Z" ; Case insensitive ASCII Letter
DIGIT = "0".."9" ; Numeric digit
참고하시기 바랍니다 Case insensitive ASCII Letter
.
흥미롭게도 이는 ^-^
문자 집합에 대한 유쾌하지만 유효한 이름이라는 것을 의미합니다.
IANA 문자 집합
인터넷에서 사용할 수 있고 인터넷 문서에서 참조할 수 있는 문자 집합의 공식 이름입니다.
문자 집합 이름은 US-ASCII의 인쇄 가능한 문자에서 가져온 최대 40자까지 가능합니다. 하지만,대문자와 소문자 사용에 둔감함. [강조 내 것]
IANA는 문자 세트를 UTF-8
.
utf-8
(또는 uTf-8
)는 IANA 문자 세트 이름의 공식 이름이고, utf8
(하이픈 없이)는 IANA 문자 세트 이름이 아닙니다.
대소문자 구분이 하나 더 있으니 주의하세요!별명~을 위한이름UTF-8, 즉: csUTF8
.
"cs"는 문자 집합을 나타내며 초기 소문자는 필요하지만 대소문자를 혼합하여 사용하고 밑줄("_") 및 대시("-")와 같은 특수 문자를 포함하지 않으려는 애플리케이션을 위한 것입니다.
IANA가 아니라면 utf8
어디서 나올 수 있을까요?
glibc_nl_normalize_codeset()
다음을 수행하십시오.
문자 또는 숫자(하이픈 제외)만 전달하세요.
문자를 소문자로 변환
for (cnt = 0; cnt < name_len; ++cnt) if (__isalpha_l ((unsigned char) codeset[cnt], locale)) *wp++ = __tolower_l ((unsigned char) codeset[cnt], locale); else if (__isdigit_l ((unsigned char) codeset[cnt], locale)) *wp++ = codeset[cnt];
코드 주석틀린 말:
코드 세트 이름에 대한 표준은 없습니다.
이 댓글은 인식되지 않는 것 같습니다.RFC2978 IANA 문자 집합 등록 절차, 2.3. 명명 요구 사항.