PHP-将ebcdic转换为ascii [英] php - convert ebcdic to ascii

查看:222
本文介绍了PHP-将ebcdic转换为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆