2010-11-02 9 views
9

मैं निम्नलिखित हैडर आदेशों के साथ csv फ़ाइल पैदा कर रहा हूँ: अगर मैं Excel 2007 में फ़ाइल खोलनेपीएचपी उत्पन्न csv फ़ाइल Excel में ब्रिटेन के एक पाउंड चिह्न (£) के लिए एक £ प्रदर्शित 2007

header("Content-type: text/csv; charset=utf-8; encoding=utf-8"); 
header('Content-Disposition: attachment; filename="products.csv"'); 

, तो मुझे £ £ जहां कहीं भी £ संकेत दिखाई देना चाहिए। हालांकि, अगर मैं नोटपैड ++ में फ़ाइल खोलता हूं, तो पाउंड संकेत ठीक दिखाई देते हैं; इसी प्रकार, यदि मैं सामग्री-प्रकार को टेक्स्ट/सादा में बदलता हूं और अटैचमेंट हेडर से छुटकारा पाता हूं, तो ब्राउज़र में पाउंड संकेत सही तरीके से दिखाई देते हैं।

एक अजीब बात यह है कि अगर मैं नोटपैड ++ में "प्रारूप" मेनू पर जाता हूं, तो ऐसा लगता है कि फ़ाइल "बीओएम के बिना यूटीएफ -8" में एन्कोड की गई है। अगर मैं इसे "यूटीएफ -8 में एनकोड" में बदलता हूं, तो फ़ाइल को सहेजें, पाउंड संकेत एक्सेल में सही ढंग से दिखाई देते हैं। क्या इसे बनाने का कोई तरीका है ताकि फ़ाइल को इस एन्कोडिंग में PHP द्वारा सहेजा जा सके? सीएसवी डेटा उत्सर्जित करने से पहले

+1

आपको फ़ाइल –

+0

उत्पन्न करने वाली PHP स्क्रिप्ट के बारे में अधिक जानकारी दिखाने की आवश्यकता है, मुझे पता है कि £ £ के लिए यूटीएफ एन्कोडिंग आप इस तरह पाउंड इनपुट कर सकते हैं। मेरे पास एक्सेल में अनुभव नहीं है, इसलिए यह एक बेकार टिप्पणी हो सकती है;) – theorise

+0

£ के लिए यूटीएफ एन्कोडिंग £ नहीं है - यह HTML एन्कोडिंग है। आप सीएसवी फाइलों में एचटीएमएल एन्कोडिंग का उपयोग नहीं कर सकते हैं। – Gnuffo1

उत्तर

11

आउटपुट 0xEF 0xBB 0xBF आउटपुट। यदि आप इसे संभालते हैं तो सामग्री लंबाई शीर्षलेख को 3 तक बढ़ाने के लिए मत भूलना।

header('Content-type: text/csv;'); 
header('Content-Length: ' + strlen($content) + 3); 
header('Content-disposition: attachment;filename=UK_order_' . date('Ymdhis') . '.csv'); 
echo "\xef\xbb\xbf"; 
echo $content; 
exit; 
+0

कैसे? गूंज "0xEF 0xBB 0xBF"; काम नहीं करता – Gnuffo1

+5

गूंज "\ xef \ xbb \ xbf"; –

+1

इसमें किस फ़ाइल को रखने की आवश्यकता है? –

9

उपयोग utf8_decode() - मेरे लिए काम किया

+0

ने मेरी मदद की, धन्यवाद – SoluableNonagon

+0

इसका उपयोग कैसे करें? –

0
header("Expires: Mon, 26 Nov 1962 00:00:00 GMT"); 
header("Last-Modified: " . gmdate('D,d M Y H:i:s') . ' GMT'); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Pragma: no-cache"); 
header('Content-Type: text/csv;'); 
header("Content-Disposition: attachment; filename=".$savename); 
echo utf8_decode($csv_string); 

ऊपर के रूप में प्रकाशित किया गया था user769889 द्वारा लेकिन मैं, इस v-कष्टप्रद मुद्दे के साथ मेरी कुंठा के साथ याद किया सब तय अब और काम कर रहे। उम्मीद है कि यह किसी की मदद करता है ...

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