PHP-将ebcdic转换为ascii [英] php - convert ebcdic to ascii
问题描述
$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的值为¦ –¦
When this code block executes, $my_var has the value ¦–¦
正在调用的测试RPGLE程序正在返回哇
The test RPGLE program being called is returning wow
当程序被更改时,我返回的字符是不同的...所以我知道我正在从程序中获取值.唯一的问题是,如何将这些字符从EBCDIC转换为ASCII.
When the program is altered, the characters i get back are different... so i know i'm getting back values from the program. The only issue is, how to convert these characters from EBCDIC to 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"
But i get this error: "Wrong charset, conversion from" ebcdic to ascii "is not allowed"
并且,字符集错误,不允许从cp037转换为ascii"
And, "Wrong charset, conversion from" cp037 to ascii "is not allowed"
推荐答案
在CREATE PROCEDURE语句中,使用与您的语言匹配的CCSID.对于美国英语,为37.例如:
On your CREATE PROCEDURE statement, use the CCSID that matches your language. For US English, that would be 37. Example:
CREATE PROCEDURE buck.phptest(
inout parm_inout varchar (5) ccsid 37)
LANGUAGE RPGLE
NOT DETERMINISTIC
CALLED ON NULL INPUT
EXTERNAL NAME buck.phptest
PARAMETER STYLE GENERAL
这篇关于PHP-将ebcdic转换为ascii的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!