3.8 文字符号化
LC_CTYPEロケールは、パターンとデータの文字符号化、つまりUTF-8、ASCII、その他のどの符号化でテキストを表すかを指定します。「環境変数」を参照してください。
「C」または「POSIX」ロケールでは、各文字を1バイトで符号化し、すべてのバイトが有効な文字です。UTF-8のような複雑な符号化では、1文字を表すために複数バイトが必要な場合があり、どの文字の表現にも寄与しない符号化エラーのバイトがある場合もあります。POSIXは、パターンや入力データに符号化エラーやNUL文字が含まれる場合のgrepの動作を規定していないため、移植可能なスクリプトでは、このような使い方を避けるべきです。POSIXへの拡張として、GNU grepはNUL文字をほかの文字と同じように扱います。ただし、-a(--binary-files=text)を使わない限り、入力にNUL文字がある場合や、出力に符号化エラーがある場合、GNU grepはファイルをバイナリーとして扱い、一致の詳細を抑制します。「ファイルとディレクトリーの選択」を参照してください。
ロケールにかかわらず、POSIX Portable Character Set(ASCIIの部分集合)の103文字は常に1バイトで符号化します。また、特殊なプラットフォームを除き、ASCIIの128文字は通常の1バイト符号化を使います。