2011-01-09 7 views
5

मुझे नहीं पता कि समस्या क्या है, लेकिन जब भी मैं $ _POST फ़ंक्शन से पत्र को कॉल करता हूं तो यह इसे मेरे fpdf में Ã ± के रूप में रखता है .. कोई विचार क्यों?गलत प्रतीक fpdf में निर्यात किया गया ... Ã ± ..?

+0

यह एक चरित्र सेट मुद्दा है। आपको अधिक जानकारी जोड़ने की आवश्यकता है: आपका डेटा कहां से आता है (डेटाबेस? फॉर्म?), यह –

+0

डेटाबेस फॉर्म को एन्कोड किया गया है .. लेकिन लोग लिखते हैं और यह उन प्रतीकों के रूप में fpdf में समाप्त होता है .. mysql डेटाबेस में यह प्रतीत होता है कि कैसे मुझे यह चाहिए कि – NORM

उत्तर

5

आपका स्ट्रिंग एक गलत एन्कोडिंग है में रूप में अच्छी तरह UTF-8 में उपयोगकर्ता के लिए वितरित करने के लिए मत भूलना। यह UTF-8 है, लेकिन मुझे तुम्हारी जरूरत है लैटिन -1 या ऐसा लगता है ..

आप अपने तारों पर utf8_decode() का उपयोग कर सकते हैं: यूनिकोड साथ FPDF का विस्तार करने के

echo utf8_decode("ñ"); // prints ñ 
+0

अरे thnx! क्या मैं इसे गूंजता था? .. नीचे की तरह, क्या? – NORM

+0

आपको अपने पीडीएफ में तार लिखने से पहले इसका उपयोग करना होगा: '$ your_string = utf8_decode ($ your_string);'। वास्तव में $ _POST पढ़ने के बाद सीधे: '$ your_string = utf8_decode ($ _ POST ['your_string']);' – Floern

+0

यह मेरी पोस्ट है: $ pdf-> लिखें (0, "" $$ ["CA"]); मुझे यह करना चाहिए: $ pdf-> $ your_string = utf8_decode लिखें (0, "" $ व्यक्ति ["सीए"]); ???? – NORM

1

हम समस्या एक बार और का उपयोग कर

utf8_decode("foo bar"); 

समस्या हल (बेशक निर्भर करता है कि डेटा उपयोगकर्ता, एक डाटाबेस, ... से आ रहा है) था। फ़ाइल शीर्षक

header("Content-type: application/pdf; charset=utf-8"); 
+0

हेडर में क्या सेट करें? – NORM

+0

@NORM कृपया मेरा संपादन देखें। – DrColossos

+0

thnx !!!!!!!!!!! – NORM

2

वैकल्पिक समाधान किया जाएगा (UTF- 8) समर्थन। इसके लिए एक पैच है: http://acko.net/node/56

+0

thnx !! ..इसे कैसे स्थापित किया जा सकता है? – NORM

+0

@NORM: वास्तव में: मेरे पास कोई सुराग नहीं है। लेकिन जो मैंने एकत्र किया है, उससे आप सामान्य एफपीडीएफ के स्थान पर इसका इस्तेमाल करते हैं। शामिल करें, और 'नई यूएफपीडीएफ() 'कक्षा को तुरंत चालू करें। – mario

+0

thnx !!!!!!!!!!! – NORM

2

मैंने भी इसे काम करने के लिए पर्याप्त समय बिताया है और सोचा है कि निम्नलिखित स्पष्टीकरण दूसरों के लिए सहायक हो सकता है।

यदि कोई समस्या केवल £/€ या इसी तरह की वर्ण है तो अपने स्वयं के जटिल कार्यों को लिखने की आवश्यकता नहीं है।

यहाँ मैं क्या इस्तेमाल किया है (नेट पर इस सूत्र और अन्य लोगों से लिया गया): -

$pdf->SetY(220); // set the y co-ord before output // 
$monthlyRent = utf8_decode("£" . number_format($monthlyRent, 2)); // 2 dec places // 
// previously $monthlyRent is pulled from the MySql db as $array['_monthlyRent']; 
$pdf->Write(5,'Gross monthly rent: ' . $monthlyRent); // outputs £980 or whatever. // 

इलाज काम करता है लेकिन कर utf8_decode(); या यह रूप में एक ही पंक्ति में number_format($yourval, 2) करने के लिए याद शिकंजा कसना!

आशा है कि यह कुछ गरीब सोड के लिए सहायक है, जो मुझे पसंद करते हैं, कुछ घंटों तक संघर्ष कर चुके हैं!

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