当我从控制台执行此命令时“发送XXXXXXXXX’śćźłóśadad’”一切正常.但是当我用exec执行它时(“sendsmsXXXXXXXXX’śćźłóśadad’”); msg的主体没有抛光字母. Debian控制台是UTF-8,PHP文件是UTF-8.当我从cli执行这个PHP文件时一切正常,但问题是我从浏览器运行它(同一个文件).为什么?怎么解决?
解决方法:
通过CLI界面运行脚本时,子进程继承其父进程的环境,该环境包含变量LANG,用于将字节的编码传递给基础C运行时.
可能当你通过mod_PHP执行你的程序时,没有设置LANG.所以你可以自己配置它:
<?PHP
putenv('LANG=en_US.UTF-8');
exec("sendsms 888888888 cosśźćłó");