Penyelesaian kepada hasil php exec yang bercelaru: 1. Buka fail kod PHP yang sepadan 2. Semak kod di exec 3. Ubah suai kandungan kepada "exec("python cmd.py",$str); foreach($str sebagai $res){$str = iconv("GBK", "UTF-8", $res);}echo $str;".
Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer Dell G3.
Apakah yang perlu saya lakukan jika keputusan php exec bercelaru?
php exec atau shell_exec tidak boleh mengembalikan aksara Cina yang kacau-bilau
Pada asalnya saya ingin melaksanakan:
exec("python cmd.py",$str); var_dump($str);
Output fail cmd.py mengandungi bahasa Cina, hasilnya Apa yang dipaparkan adalah seperti gambar di bawah:
Selepas mencari di Baidu dan csdn, ramai blogger mengatakan bahawa ia boleh diselesaikan dengan menetapkan pengekodan yang telah ditetapkan, seperti menambah pengekodan sebelum melaksanakan arahan:
$locale='en_US.UTF-8'; setlocale(LC_ALL,$locale); putenv('LC_ALL='.$locale); exec("python cmd.py",$str); var_dump($str);
Selepas mencubanya, saya dapati masalah itu masih wujud dan tiada kesan. . Setelah sekian lama mencari di Google, akhirnya saya temui jalan penyelesaian, jadi saya tidak berani meninggalkannya, jadi saya menyiarkannya untuk dikongsi. . Bukan omong kosong, terus ke sana. . .
eksekusi:
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);
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika keputusan php exec bercelaru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!