2010-08-04 69 views
6

我試圖通過使用php的exec函數將UTF-8文本作爲參數傳遞給命令行程序,並且一直有問題。我懷疑這是由於字符編碼問題。命令行字符編碼從PHP的exec()

當我從命令行調用locale charmap時,得到:UTF-8

但是當我做:

<?php echo exec('locale charmap'); ?> 

我得到

ANSI_X3.4-1968

我該如何改變呢?這不是我想要設置的一次 - 我將使用不同的語言/編碼,因此每次撥打exec()可能需要一個不同的語言/編碼。但即使知道如何將其設置爲UTF-8一次也會有所幫助。

回答

12

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 

您應該已經安裝的語言環境。

+0

拯救生命。非常感激。 – 2013-05-21 11:08:22