出力は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文字セット名ではありません。
大文字と小文字の区別がもう1つあるので注意してください!ニックネーム~のため名前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。命名要件。