इसे पसंद टेम्पलेट टूलकिट ठीक से एन्कोडिंग से निपटने नहीं है लगता है।खाका टूलकिट वर्ण एन्कोडिंग
मैं template->process
एक फ़ाइल नाम (जहां टेम्पलेट प्राप्त करने के लिए) पास कर रहा हूं, एक हैश संदर्भ (सभी पैरामीटर युक्त), और एक स्केलर संदर्भ (आउटपुट कहां रखा जाए) तो मैं इसे वापस कर रहा हूं और बदले में इसे प्रदर्शित कर रहा हूं उपभोक्ता।
जब मैंने इसे उस में उमलॉट साथ एक स्ट्रिंग दे, एचटीएमएल उत्पादन हर पत्र (लेकिन पत्र की सही संख्या) के स्थान पर एक सफेद प्रश्न चिह्न के साथ एक काला हीरा भी शामिल है। कोई अन्य चरित्र ठीक हो जाता है।
मैं टेम्पलेट-> प्रक्रिया पर कॉल करने से पहले स्ट्रिंग को मुद्रित करने के लिए एक चेतावनी का उपयोग कर रहा हूं और इस बिंदु पर यह ठीक है, मैं इसे बता सकता हूं कि template->process
के दौरान यह कहता है कि चीजें कचरे में बदल जाती हैं।
कोई भी विचार? मैं ENCODING => "utf8"
के साथ-साथ binmode => ":utf8"
उपयोग करने की कोशिश की है, लेकिन न तो कोई उत्पादन पर कोई प्रभाव।
यहां मेरे कोड को टेम्पलेट-> प्रक्रिया में कॉल करने के लिए केवल कुछ वसा छिद्रित किया गया है, ध्यान दें कि अगर मैं {binmode => 'utf8'}
छोड़ देता हूं तो इसका कोई प्रभाव नहीं पड़ता है।
<put variables in hash referenced to by vars>
<print out variables in has referenced to by $var>
my $data;
$template->process($self->filename, $vars, \$data, {binmode => ':utf8'}) || die "Template process failed: ", $template->error();
return $data;
अपने जवाब के लिए हल अरे सब धन्यवाद, समस्या निकला है किके बाद टेम्पलेट प्रक्रिया अपनी बात किया था, हम तो यह तो हम भी outputting से पहले एक अस्थायी फ़ाइल के लिए स्ट्रिंग लिखा था फ़ाइल के लिए binmode स्थापित करने के लिए की जरूरत है, कोड अब लगता है कि:
<put variables in hash referenced to by vars>
<print out variables in has referenced to by $var>
my $data;
binmode(STDOUT, ":utf8");
$template->process($self->filename, $vars, \$data, {binmode => ':utf8'}) || die "Template process failed: ", $template->error();
return $data;
मैं आप सभी अपना समय :)
यूटीएफ 8 के बजाय यूटीएफ -8 पास करने का प्रयास करके शायद असंबंधित। कभी कभी यह मायने रखती है, जैसे http://jeremy.zawodny.com/blog/archives/010546.html – Hugmeir
UTF-8 पाठ घायल हो रही है या है ब्राउज़र सिर्फ सही एन्कोडिंग उठा नहीं है? –
यदि यह बाद वाला था तो मैं ब्राउज़र को बता सकता हूं कि किस एन्कोडिंग का उपयोग करना है? एचटीएमएल टेम्पलेट समर्थक (जिस प्रणाली से हम आगे बढ़ रहे हैं) का उपयोग कर वर्ण सही तरीके से प्रदर्शित होते हैं। यह मुझे विश्वास दिलाता है कि यह टीटी था लेकिन मैं गलत हो सकता था। ट्रेन पर अब मुझे कल सुबह किसी भी सुझाव का प्रयास करना होगा। – cjh