PHP 5.3 fgetcsv
फ़ंक्शन का उपयोग करके, मुझे एन्कोडिंग मामलों के कारण कुछ समस्याएं आ रही हैं। ध्यान दें कि उस फ़ाइल में स्पैनिश "विशेष" लैटिन वर्ण हैं जैसे ग्राफ़िक लहजे, आईए, आईआई, इत्यादि ...php fgetcsv - वर्णसेट एन्कोडिंग समस्या
मुझे सीएसवी फ़ाइल मैक एक्सेल फ़ाइल के लिए एमएस 2008 में कुछ संरचित डेटा निर्यात करने के लिए मिलता है।
यदि मैं इसे मैक ओएस एक्स TextEdit
एप्लिकेशन के साथ खोलता हूं, तो सबकुछ सही लगता है।
लेकिन जब मैं अपने PHP प्रोग्राम पर उतरता हूं और उस fgetcsv PHP फ़ंक्शन का उपयोग कर CSV को पढ़ने का प्रयास करता हूं, तो मुझे इसे सही ढंग से वर्णमाला पढ़ने के लिए नहीं मिल रहा है।
/**
* @Route("/cvsLoad", name="_csv_load")
* @Template()
*/
public function cvsLoadAction(){
//setlocale(LC_ALL, 'es_ES.UTF-8');
$reader = new Reader($this->get('kernel')->getRootDir().'/../web/uploads/documents/question_images/2/41/masiva.csv');
$i = 1;
$r = array("hhh" => $reader -> getAll());
return new Response(json_encode($r, 200));
}
आप देख सकते हैं, मैं एक setlocale
es_ES.UTF-8
को उपयोग करने के लिए भी कोशिश की है। लेकिन कुछ भी काम नहीं कर रहा है।
पढ़ने हिस्सा यहां आता है:
public function getRow()
{
if (($row = fgetcsv($this->_handle, 10000, $this->_delimiter)) !== false) {
$this->_line++;
return $this->_headers ? array_combine($this->_headers, $row) : $row;
} else {
return false;
}
}
देखें क्या मैं प्रत्येक पंक्ति पढ़ने के बाद $ पंक्ति चर में मिलता है:
उन ?
पात्रों ग्राफिक के साथ स्वर होने की अपेक्षा की जाती है उन पर उच्चारण।
वहां कोई सुराग? अगर मैं विंडोज़ के लिए एमएस एक्सेल का इस्तेमाल करता तो क्या यह काम करेगा? मैं रन टाइम में फ़ाइल के सटीक एन्कोडिंग में कैसे जान सकता हूं और इसे पढ़ने से पहले सेट कर सकता हूं?
(उन स्पेनिश वक्ताओं के लिए, उन ग्रंथों में ऐसी भयानक चिकित्सा सामग्री से भयभीत न हों;))।
एक ही समस्या है। एक यूटीएफ 8 एन्कोडेड सीएसवी फ़ाइल आयात एक सर्वर पर ठीक है लेकिन दूसरे नहीं। अपना स्वयं का सीएसवी रीडर लिखना समाप्त हो गया। –
एफडब्ल्यूआईडब्ल्यू, आप बिना किसी बताए फ़ाइल के एन्कोडिंग * वास्तव में * जान सकते हैं। जब आप इसे पढ़ते हैं तो आप अनुमान लगा सकते हैं, और तदनुसार रूपांतरित कर सकते हैं, लेकिन एन्कोडिंग को बताया जाने वाला कुछ भी विश्वसनीय नहीं है। – cmbuckley
धन्यवाद cbuckley। इसका मतलब यह है कि "तदनुसार रूपांतरित करें" के साथ इसका अनुमान लगाने का प्रयास करें और उपयोगकर्ता से पूछें कि क्या वह आयात को मंजूरी देता है? और यदि नहीं, तो मूल के लिए अन्य एन्कोडिंग की कोशिश करते रहें? – ElPiter