http://www.opencbank.net/
cBankSupport topreleaseFAQversionLicensepatch_downloadsupport_info
マークは、次期バージョンにて対応予定です。
マークは、スケジュールは未定ですが今後対応する予定です。
(無印)は、既にリリース済み製品で対応されたものまたは、回答(A.〜)により解決やクローズされた項目です。


【件 名】
InputChecker#setConvert()について

【日 付】 (2002/08/01) 【Q番号】[0207032] 【製 品 名】 cInputCheck(Ver. 1.2.3)
InputChecker#setConvert()の機能は次のように記載されていますが,
「SJIS,EUCJIS,JIS からMS932 への文字コード変換フラグを設定」

EUCで入力してもMS932に変換されないようです。
同様の現象がおきていないでしょうか?


setConvert(true)は、cInputCheckへ渡されるチェック項目の”値”が、JIS系(Shift_JIS, EUC-JP, JIS)から
変換された結果である場合に指定するオプションです。
正確にいうと、byte[]などからMS932以外のJIS系のコンバータを使用してjava.lang.Stringを作成した場合となります。
パラメータなどをEUC-->MS932へ変換するオプションではありません。

cInputCheckへ渡すチェック項目の値は、もともとの文字コードからUnicodeへ変換された結果の
java.lang.Stringである必要があります。cFramework + アプリケーションサーバ + cInputCheckの場合、
WEBパラメータを検査する場合はcFrameworkの設定で行います。
また、Javaアプリケーション + cInputCheckの場合、cInputCheckへ渡すチェック項目の値が
適切な変換の結果であることは、アプリケーションが保証する必要があります。

cInputCheckはMS932コードから変換した結果のString(Unicode)を基に各種チェックを行っています。

ここで問題になるのは、Shift_JIS, EUC-JP, ISO2022-JP <--> Unicodeと
MS932 <--> Unicodeのマッピングが異なる場合があるということです。

具体的にいえば、全角ハイフン"−"はSHIFT_JIS, MS932共に"0x817c"という文字コードですが、
SHIFT_JISであるとしてUnicodeへ変換すると(SHIFT_JISコンバータを使用してjava.lang.Stringを作成すると)
\u2212(MINUS_SIGN)というUnicodeの文字コードに変換されます。
これは、ほかのJIS系のコード(EUC-JP, JIS)の場合も同様です。
しかし、MS932であるとしてUnicodeへ変換すると、\uff0d(FULLWIDTH_HYPHEN-MINUS)へ変換されます。

cInputCheckは、前述したとおり、この場合全角ハイフンをMS932から変換された結果の\uff0d(FULLWIDTH_HYPHEN-MINUS)
で識別しており、渡されたStringがJIS系のコードから変換されたものである場合、全角ハイフンであることを識別できません。