Je communique avec PHP via RFC en utilisant la fonction module.i j'ai essayé d'envoyer des caractères chinois du module de fonction à PHP, mais en PHP, je reçois des caractères chinois sous forme de ######,Comment envoyer des caractères chinois de SAP à PHP via RFC?
i Vous ne comprenez pas quel est le problème, côté PHP ou côté SAP? quelqu'un me donne une suggestion de quel côté dois-je me concentrer pour rectifier ce problème? ou tout autre moyen d'envoyer un caractère chinois à PHP?
Code SAP FM: FN Nom: ZMM_PHP_TO_SAP
t_log-msgty = 'E'.
CONCATENATE p_uname '用户无检料权限' INTO t_log-msgtx SEPARATED BY space.
APPEND t_log.
Code PHP:
$LOGIN = array ("ASHOST"=>$row_login1["sap_server"],
"SYSNR"=>$row_login1["sap_system_number"],
"CLIENT"=>$row_login1["sap_client"],
"USER"=>$row_login1["sap_username"],
"PASSWD"=>$row_login1["sap_password"],
"CODEPAGE"=>"8300");
$rfc = saprfc_open ($LOGIN);
if(!$rfc){
$error=saprfc_error();
return "The RFC connection has failed with the following error:".saprfc_error();
exit;}
$fce = saprfc_function_discover($rfc,"ZMM_PHP_TO_SAP");
if(!$fce){
return "The function module has failed.";
return $rfc;
exit;}saprfc_import ($fce,"P_UNAME","demo-china");
saprfc_table_init ($fce,"T_LOG");
// Call and execute the function
$rc = saprfc_call_and_receive ($fce);
if ($rfc_rc != SAPRFC_OK){
if ($rfc == SAPRFC_EXCEPTION){
echo ("Exception raised: ".saprfc_exception($fce));
} else {
echo ("Call error: ".saprfc_error($fce));
}
echo "failure";
exit;
}
$data_row = saprfc_table_rows ($fce,"T_LOG");
$log_msg='';
if($data_row != 0 || $data_row != '')
{
for ($i=1; $i<=$data_row; $i++)
{
$DATA = saprfc_table_read ($fce,"T_LOG",$i);
echo $DATA['MSGTX'];
if($DATA['MSGTY'] == "E")
{
$log_msg =$DATA['MSGTX'];
}
if($DATA['MSGNO'] == "D")
{
$log_msg ="D";
}
}
}
lorsque itry à imprimer $ DATA [ 'MSGTX'] la sortie est DEMO-Chine sur ¥ Í ## # ®Æ #, comment obtenir des caractères chinois exacts. merci d'avance.
Quel module de fonction utilisez-vous? Quel serveur PHP utilisez-vous? – Suncatcher
Module de fonction SAP, qui se connecte via une connexion RFC et j'utilise le serveur Apache. –
Vous voulez dire que vous appelez une FM à distance depuis l'extérieur (depuis l'environnement Apache)? Quel module de fonction appelez-vous? Est-ce Z-module ou standard? Pouvez-vous le nommer? – Suncatcher