1.08.3標準
ログ解析スクリプトで、利用者の言語設定に左右されない英語メッセージと単純なバイト順の並べ替えを使う。
個別LC_*とLC_ALLは未設定とする。
適切な設定はどれか。
× 不正解
個別LC_*とLC_ALLがない条件ではLANG=Cにより、メッセージや照合順などをCロケールへ固定できる。
詳細解説
誤り
LANG=ja_JP.UTF-8日本語ロケールの規則を既定値にする。
日本語のメッセージやロケール固有の照合規則が使われ、利用者環境非依存という目的に合わない。
正しい
LANG=C個別指定のないカテゴリを移植性の高いCロケールへ固定する。
個別指定がない条件では、LANG=Cが全カテゴリの既定となり、安定したCロケールの規則を使う。
誤り
LC_TIME=C日時カテゴリだけをCへ固定する。
日時だけは固定できるが、メッセージや並べ替えなど他カテゴリが利用者設定のまま残る。
誤り
TZ=CTZはタイムゾーンを扱い、ロケール全体を固定しない。
TZは日時の地域差のうちタイムゾーンを扱い、メッセージや照合規則を決めない。
実際に確かめる
一時的な検証環境で実行できる例です。
LANG=C locale | sed -n '1,6p'期待される結果
各未指定カテゴリがCとして評価される表示理解のポイント
- LANGは既定値
- Cは移植性向け
- LC_ALLやLC_*があれば優先
確認時の注意
- 確認環境: POSIX locale / 子プロセス環境だけ変更
基礎のおさらい
Cロケール
POSIX系で共通に利用でき、機械処理が期待する単純なメッセージや照合順へ固定しやすい。
LANGの限界
LC_ALLや個別LC_*が既にあるとそちらが優先するため、強制固定にはLC_ALL=Cも検討する。
問題IDKL-102-1060
確認環境POSIX locale / 子プロセス環境だけ変更
最終技術確認2026-08-13
誤り・権利侵害を報告