6

コンソールからこのコマンド「sendsmsXXXXXXXXX'śćźłóśadad'」を実行すると、すべて問題ありません。しかし、PHPでexec( "sendsms XXXXXXXXX'śćźłóśadad'");を使用して実行すると、msgの本文にはポーランド語の文字がありません。DebianコンソールはUTF-8であり、phpファイルはUTF-8です。cliからこのphpファイルを実行すると、すべて問題ありませんが、問題はブラウザー(同じファイル)から実行する場合です。なんで ?それを修正する方法は?

4

1 に答える 1

9

CLIインターフェイスを介してスクリプトを実行すると、サブプロセスLANGは、バイトのエンコーディングを基になるCランタイムに渡すために使用される変数を含む親の環境を継承します。

mod_phpを介してプログラムを実行すると、LANGが設定されていない可能性があります。したがって、自分で構成することで成功する可能性があります。

<?php
putenv('LANG=en_US.UTF-8');
exec("sendsms 888888888 cosśźćłó"); 
于 2013-03-14T10:47:44.687 に答える