2010-08-04 19 views
6

php'nin exec işlevini kullanarak bir komut satırı programına argüman olarak UTF-8 metnini iletmeye çalışıyorum ve sorun yaşıyorum. Karakter kodlama sorunları nedeniyle olduğundan şüpheleniyorum.PHP'nin exec() 'dan komut satırı karakter kodlaması()

Komut satırından locale charmap numaralı telefonu aradığımda: UTF-8.

Ama ne zaman:

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

Ben

ANSI_X3.4-1968

Bunu nasıl değiştirebilirim olsun? Bu bir kez ayarlamak istediğim bir şey değil - Potansiyel olarak farklı diller/kodlamalar ile çalışacağım böylece exec() her arama farklı bir tane gerektirebilir. Fakat bir kez UTF-8'a nasıl ayarlanacağını bilmek bile yardımcı olabilir.

cevap

12

Komutu LANG = <language>.UTF8 ile önekleyin.

Örnek: yerel yüklü olmalıdır

 
$ 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

Hayat kurtarıcı. Çok takdir edildi. –