2010-08-04 8 views
6

मैं php के exec समारोह का उपयोग कर एक कमांड लाइन कार्यक्रम के लिए एक तर्क के रूप में UTF-8 पाठ पारित करने के लिए कोशिश कर रहा हूँ और समस्या हो रही किया गया है। मुझे लगता है यह वर्ण एन्कोडिंग मुद्दों की वजह से है।कमान PHP के कार्यकारी से लाइन वर्ण एन्कोडिंग()

जब मैं कमांड लाइन से 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

लाइफ सेवर। बहुत सराहना की। –

संबंधित मुद्दे