・一意の符号化表現が要求された場合はG0〜G3のうち、若い数字の方を使う。
・そうでなければG0〜G3のどれを使っても良い。
ISO-2022-JPはASCII、JIS X 0201 ラテン、JIS X 0208をG0に指示して使います。
EUC-JPはASCIIをG0、JIS X 0208をG1、JIS X 0201 片仮名をG2、JIS X 0212をG3
にあらかじめ指示してあります。ですから、EUC-JPで一意の符号化表現が要求さ
れた場合は、JIS X 0201 片仮名とJIS X 0208の一部は使えません。
ところで、ISO-2022-JPはそもそもJIS X 0201 片仮名を含んでいません。なので
ISO-2022-JPでJIS X 0201 片仮名を使おうとするのは「論外」です。ちなみに
ISO-2022-JP-2、ISO-2022-JP-3にも含まれていません……。
閑話休題。実は、ISO-2022-JPやEUC-JP自身は一意の符号化表現を要求していま
せん。よってかぶっている文字はJIS X 0201とJIS X 0208のどちらを使ってもか
まわないわけです。結局同じ文字なのですから、そもそも使い分け自体が無意味。
日本語を処理したり表示するときには、二つともまったく同じ文字として扱わな
ければいけません。現存する処理系は壊滅状態ですね。
さて本当にどちらを使ってもいいのかというと、これはJISで決まっていて、JIS
X 0208のかぶっている方については「過去との互換性が要求されるとき以外は使
うな」と書いてあります(JIS X 0208の7.2, 7.3, 9.2)。
まとめますと、
ISO-2022-JP……全角英数は使えない。半角カナは存在しないので論外。
EUC-JP……全角英数は使えない。半角カナは一意の符号化表現が要求されない場
合問題ない。ただし、その場合は全角カナとまったく同じ表示・処理にすること。
しかし、実現出来ていない現状では半角カナは使わない方がいいと思います。
Shift JISの場合:
JIS X 0208の4.2, 4.3, 4.5に書いてあります。「全角英数・半角カナは使うな」
あとJIS X 0201 片仮名の割り当ては削除の予定だそうです。