Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn die PHP-Exec-Ergebnisse verstümmelt sind?

Was tun, wenn die PHP-Exec-Ergebnisse verstümmelt sind?

藏色散人
藏色散人Original
2022-10-21 10:17:181352Durchsuche

Lösung für verstümmelte PHP-Exec-Ergebnisse: 1. Öffnen Sie die entsprechende PHP-Codedatei 2. Überprüfen Sie den Code bei exec; 3. Ändern Sie den Inhalt in „exec(“python cmd.py“,$str); foreach($str as $res){$str = iconv("GBK", "UTF-8", $res);}echo $str;".

Was tun, wenn die PHP-Exec-Ergebnisse verstümmelt sind?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 8.1, Dell G3-Computer.

Was soll ich tun, wenn das PHP-Exec-Ergebnis verstümmelt ist?

php behebt das Problem, dass exec oder shell_exec keine verstümmelten chinesischen Zeichen zurückgeben können

Ursprünglich wollte ich Folgendes ausführen:

exec("python cmd.py",$str);
var_dump($str);

Die Ausgabe der cmd.py-Datei enthält Chinesisch und das Ergebnis ist wie in der folgenden Abbildung dargestellt:

Was tun, wenn die PHP-Exec-Ergebnisse verstümmelt sind?

Nachdem Baidu und viele Blogger in der CSDN-Suche sagten, dass es durch Festlegen einer vorgegebenen Codierung gelöst werden kann. Fügen Sie beispielsweise die Codierung hinzu, bevor Sie den Befehl ausführen, und führen Sie ihn dann aus:

$locale='en_US.UTF-8';
setlocale(LC_ALL,$locale);
putenv('LC_ALL='.$locale);
exec("python cmd.py",$str);
var_dump($str);

Nachdem ich es ausprobiert habe, stellte ich fest, dass das Problem immer noch besteht existiert und hat keine Auswirkung. . Nach einer langen Suche bei Google habe ich endlich eine Lösung gefunden, also habe ich mich nicht getraut, sie stehen zu lassen, also habe ich sie gepostet, um sie zu teilen. . Kein Unsinn, legen Sie einfach los. . .

exec:

exec("python cmd.py",$str);
foreach($str as $res)
{
    $str = iconv("GBK", "UTF-8", $res);
}
echo $str;

shell_exec:

$res = shell_exec("python cmd.py");
echo iconv("GBK", "UTF-8", $res);

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas tun, wenn die PHP-Exec-Ergebnisse verstümmelt sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn