Php exec编码

mit*_*tch 5 php debian command-line-interface

当我从控制台执行此命令时"发送XXXXXXXXX'śćźłóśadad'"一切正常.但是当我用exec执行它时("sendsmsXXXXXXXXX'śćźłóśadad'"); msg的主体没有抛光字母.Debian控制台是UTF-8,php文件是UTF-8.当我从cli执行这个php文件时一切正常,但问题是我从浏览器运行它(同一个文件).为什么?怎么解决?

Raf*_*ele 5

当您通过CLI界面运行脚本时,子进程将继承其父进程的环境,该环境包含LANG用于将字节编码传递给基础C运行时的变量.

可能当您通过mod_php执行程序时,LANG未设置.所以你可以自己配置它:

<?php
putenv('LANG=en_US.UTF-8');
exec("sendsms 888888888 cos????ó"); 
Run Code Online (Sandbox Code Playgroud)