Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menyelesaikan phpshellexec aksara Cina bercelaru
PHP ialah bahasa skrip yang biasa digunakan untuk pembangunan web Fungsinya yang berkuasa dan ciri fleksibel digemari oleh ramai orang. Dalam PHP, fungsi shellexec membenarkan program untuk melaksanakan perintah sistem dan mengembalikan hasilnya. Walau bagaimanapun, apabila melaksanakan arahan dengan aksara Cina, kita sering menghadapi masalah aksara Cina yang kacau.
Aksara Cina bercelaru kerana PHP menggunakan pengekodan ASCII, manakala bahasa Cina dalam perintah sistem menggunakan pengekodan GBK dan kedua-dua pengekodan tidak serasi. Semasa pelaksanaan arahan, sistem akan menukar bahasa Cina yang dikodkan GBK kepada pengekodan ASCII, mengakibatkan aksara yang bercelaru.
Untuk menyelesaikan masalah ini, kita perlu menggunakan fungsi iconv untuk menukar bahasa Cina kepada set aksara yang konsisten dengan pengekodan sistem, seperti UTF-8.
Berikut ialah contoh kod penyelesaian:
$cmd = 'dir /B | findstr 中文'; // 一个带中文字符的命令 $cmd = iconv('UTF-8', 'GBK', $cmd); // 将命令中的中文转换成GBK编码 $result = shell_exec($cmd); // 执行命令 $result = iconv('GBK', 'UTF-8', $result); // 将命令的输出结果转换成UTF-8编码 echo $result; // 输出结果
Dalam kod di atas, kami mula-mula menukar aksara Cina dalam arahan kepada pengekodan GBK, dan menukar output arahan ke dalam pengekodan UTF -8 untuk mengelakkan aksara Cina yang kacau.
Perlu diingatkan bahawa untuk memastikan keselamatan arahan, kita harus menapis dan melarikan diri daripada aksara khas dalam arahan untuk mengelakkan suntikan arahan dan isu keselamatan lain.
Ringkasnya, fungsi shellexec dalam PHP boleh membantu kami melaksanakan arahan sistem, tetapi apabila memproses aksara Cina, kami perlu memberi perhatian kepada isu penukaran pengekodan. Kita boleh menggunakan fungsi iconv untuk menukar aksara Cina kepada set aksara yang konsisten dengan pengekodan sistem, dengan itu mengelakkan berlakunya aksara Cina yang kacau.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan phpshellexec aksara Cina bercelaru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!