Heim > Artikel > Backend-Entwicklung > Was tun, wenn die PHP-Exec-Ergebnisse verstümmelt sind?
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;".
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:
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!