Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das verstümmelte PHP-Exec-Problem

So lösen Sie das verstümmelte PHP-Exec-Problem

藏色散人
藏色散人Original
2021-12-31 11:15:072986Durchsuche

Lösung für verstümmelten PHP-Exec-Code: 1. Führen Sie „exec(“python cmd.py“,$str);“ aus. 2. Verwenden Sie einfach „iconv(“GBK“, „UTF-8“, $res);“ Konvertieren Sie die Kodierung.

So lösen Sie das verstümmelte PHP-Exec-Problem

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

Wie löse ich das Problem der verstümmelten PHP-Exec-Zeichen?

php Füllen Sie die Grube exec oder shell_exec nicht aus chinesische verstümmelte Zeichen zurückgeben

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 im Bild unten dargestellt:

So lösen Sie das verstümmelte PHP-Exec-Problem

Viele Blogger sagten, dass es durch Festlegen einer Vorgabe gelöst werden kann Codierung, z. B. Hinzufügen der Codierung vor der Ausführung des Befehls:

$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 weiterhin besteht und keine Auswirkung hat. . 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, fang einfach an. . .

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);

Sowohl die Exec- als auch die Shell_exec-Rückgabe oben können Chinesisch anzeigen!

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo lösen Sie das verstümmelte PHP-Exec-Problem. 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