回答:
POSIXで義務付けられている特定の文字エンコードはありません。固定位置の唯一の文字はnullで、00でなければなりません。
POSIXで必要なことは、ポータブルキャラクタセットのすべての文字が存在することです。ポータブル文字セットには、印刷可能なASCII文字、スペース、BEL、バックスペース、タブ、キャリッジリターン、改行、垂直タブ、フォームフィード、およびnullが含まれています。それらがどこでどのようにエンコードされるかは、以下を除いて指定されていません。
それは文字の表現に他の制限を課さないので、適合システムはそれらの文字の表現と他の文字に加えてエンコーディングを自由にサポートできます。
同じシステム上の異なるロケールはを除いて、それらの文字の異なる表現を持つことができる.
と/
し、
アプリケーションが文字エンコーディングが異なるロケールのペアを使用する場合、またはアプリケーションで使用されるロケールとは異なるエンコーディングのロケールを使用するアプリケーションのデータにアクセスする場合、結果は不定です。
すべてのPOSIX準拠システムが同じ方法で処理する必要がある唯一のファイルは、完全にnullバイトで構成されるファイルです。テキストとして扱われるファイルの行は、PCSの改行文字のエンコーディングによる表現で終了します。
POSIX標準は、ASCIIの文字のASCII文字セットと同じ順序を持つPOSIXロケールを導入しています(POSIX基本定義§7.3.2)。
さらに、シンボリック定数POSIX2_LOCALEDEF
が定義されているシステム(XSI準拠のシステム用に定義され、を介してテストできるgetconf POSIX2_LOCALEDEF
)では、システムは、localedef
ユーティリティを使用した新しいロケールの作成、およびPOSIXベースで指定されているロケール定義をサポートします。定義§7.3。
POSIXロケール定義は、Unicode値による文字の指定をサポートしていません。ISO/ IEC TR 14652(ISO / IEC JTC1 / SC22 / WG20ホームで利用可能)、ISO TR 30112(ドラフトで利用可能)などの新しい標準があります。ISO / IEC JTC1 / SC35 / WG5 home)は、ISO / IEC TR 14652を廃止します。
他の関連する標準は、ISO 14651(ISO ITTFサイトで入手可能)およびUnicode照合アルゴリズム(UCA、Unicode UTS#10)です。
CPAN のUnicode :: Tussle Perlモジュールには、いくつかのUnixユーティリティのUnicodeリライトが含まれています。Unicodeをサポートするために、sedおよびawkスクリプトとワンライナーを(比較的簡単に)Perlで書き直すことができます。
glibcの場合、コンポーネントlocaledataのbugzillaエントリは、さまざまなロケールのステータスのビューを提供できます。