来自PHP的命令行字符编码';行政长官()
我试图使用php的来自PHP的命令行字符编码';行政长官(),php,encoding,exec,character-encoding,Php,Encoding,Exec,Character Encoding,我试图使用php的exec函数将UTF-8文本作为参数传递给命令行程序,但一直存在问题。我怀疑是因为字符编码问题 当我从命令行调用locale charmap时,我得到:UTF-8 但当我这样做的时候: <?php echo exec('locale charmap'); ?> 我明白了 ANSI_X3.4-1968 我怎样才能改变这个?这不是我想设置一次的东西——我可能会使用不同的语言/编码,因此每次调用exec()都可能需要不同的语言/编码。但是,即使知道如何将其设置为UT
exec
函数将UTF-8文本作为参数传递给命令行程序,但一直存在问题。我怀疑是因为字符编码问题
当我从命令行调用locale charmap
时,我得到:UTF-8
但当我这样做的时候:
<?php echo exec('locale charmap'); ?>
我明白了
ANSI_X3.4-1968
我怎样才能改变这个?这不是我想设置一次的东西——我可能会使用不同的语言/编码,因此每次调用
exec()
都可能需要不同的语言/编码。但是,即使知道如何将其设置为UTF-8
一次也会有所帮助。在命令前面加上LANG=.UTF8
例如:
$ php -r "echo exec('LANG=\"en_US.UTF8\" locale charmap');"
UTF-8
$ php -r "echo exec('LANG=\"en_US.iso88591\" locale charmap');
ISO-8859-1
$php-r“echo exec('LANG=\'en\u US.UTF8\'locale charmap')
UTF-8
$php-r“echo exec('LANG=\'en\u US.iso88591\'locale charmap');
ISO-8859-1
您应该安装区域设置。Life saver。非常感谢。