我正在尝试使用php的exec
函数将UTF-8文本作为参数传递给命令行程序,并且一直存在问题。我怀疑这是由于字符编码问题。
当我从命令行调用locale charmap
时,我得到:UTF-8
。
但是当我这样做时:
<?php echo exec('locale charmap'); ?>
我得到了
ANSI_X3.4-1968
我该怎么改变?这不是我想要设置的东西 - 我将使用不同的语言/编码,因此每次调用exec()
可能需要不同的语言/编码。但即使知道如何将其设置为UTF-8
一次也会有所帮助。
答案 0 :(得分:13)
使用LANG = <language>.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
您应该安装区域设置。