$my_var = "1";
$connection = db2_connect ( "*LOCAL", "ISCSC", "ISCSC" );
$strSql = 'CALL LMTLIB.ARTEST(?)';
$stmt = db2_prepare ( $connection, $strSql );
db2_bind_param($stmt, 1, "my_var", DB2_PARAM_INOUT, DB2_CHAR);
$rc = db2_execute ( $stmt );
echo $my_var;
このコードブロックが実行されると、$ my_varの値は¦–¦</p>になります。
呼び出されているテストRPGLEプログラムが戻ってきました
プログラムが変更されると、返される文字が異なります...したがって、プログラムから値が返されることがわかります。唯一の問題は、これらの文字をEBCDICからASCIIに変換する方法です。
編集
私は以下を使用してみました:
mb_convert_encoding($my_var, "ASCII", "cp037");
mb_convert_encoding($my_var, "ASCII", "EBCDIC");
iconv("cp037", "ASCII", $my_var);
iconv("EBCDIC", "ASCII", $my_var);
しかし、このエラーが発生します:「間違った文字セット、「ebcdic」から「ascii」への変換は許可されていません」
そして、「間違った文字セット、「cp037」から「ascii」への変換は許可されていません」