2011-07-10 7 views
7

का उपयोग करके मैंने कुछ अन्य प्रश्न पढ़े हैं, उत्तरों की कोशिश की है लेकिन अंत में कोई परिणाम नहीं मिला है। क्या मैं उदाहरण इसहीरा प्रश्न चिह्न चिह्न दिखाने से रोकने के लिए, यहां तक ​​कि mb_substr और utf-8

Μήπως θα έπρεπε να � ... 

के लिए है और मुझे लगता है कि अजीब प्रश्न चिह्न नहीं निकाल सकते। मैं जो करता हूं वह आरएसएस फ़ीड की सामग्री प्राप्त करने के लिए है जो सामग्री के लिए यूनानी भाषा का उपयोग करके <?xml version="1.0" encoding="UTF-8"?> पर एन्कोड किया गया है।

क्या इसे ठीक करने का कोई तरीका है?

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

<div><?php 
    $entry->description = strip_tags($entry->description); 
    echo mb_substr($entry->description, 0, 490); 
?> ...</div> 
+0

'$ प्रविष्टि' क्या है? क्या वर्णन विवरण टेक्स्ट को संग्रहीत करने के लिए उपयोग किया जाने वाला एन्कोडिंग हो सकता है? –

+0

मैंने अपना प्रश्न अपडेट किया है। यह क्या करता है, यह फ़ीड – EnexoOnoma

+0

की सामग्री प्राप्त करता है "मजाकिया प्रश्न चिह्न" वास्तविक चरित्र है, जिसे प्रतिस्थापन वर्ण कहा जाता है। यह शायद डेटा में जोड़ा गया है क्योंकि आपकी फ़ीड से स्ट्रीम कानूनी यूटीएफ -8 नहीं थी, यानी इसे डीकोड नहीं किया जा सका। क्या आप हमें अब्दुल्ला की तरह स्ट्रिंग $ एंट्री की सामग्री दिखा सकते हैं? एक बाइट अनुक्रम के रूप में perferable, एक चार अनुक्रम नहीं? और, क्या आप वाकई मूल फ़ीड डेटा को यूटीएफ -8 में एन्कोड किया गया था? –

उत्तर

17

इस उत्तर

है: एक आसान काम ...

शायद .not

mb_substr($entry->description, 0, 490, "UTF-8"); 
+0

उत्कृष्ट समाधान –

0

क्या आपने इन प्रतीत होता है कि अनावश्यक मल्टीबाइट सुरक्षित स्ट्रिंग फ़ंक्शंस का उपयोग करने की कोशिश की है जो php core में नहीं हैं?

http://code.google.com/p/mbfunctions/

ऐसा प्रतीत होता है कि वे इस तरह के तरह एक mb_strip_tags() फ़ंक्शन प्रदान करते हैं:

if (! function_exists('mb_strip_tags')) 
{ 
    function mb_strip_tags($document,$repl = ''){ 
     $search = array('@<script[^>]*?>.*?</script>@si', // Strip out javascript 
        '@<[\/\!]*?[^<>]*?>@si',   // Strip out HTML tags 
        '@<style[^>]*?>.*?</style>@siU', // Strip style tags properly 
        '@<![\s\S]*?--[ \t\n\r]*>@'   // Strip multi-line comments including CDATA 
    ); 
     $text = mb_preg_replace($search, $repl, $document); 
     return $text; 
    } 
} 
+0

का उपयोग करता हूं क्योंकि मैं शुरुआत करने वाला हूं, मैं उस फ़ाइल का उपयोग कैसे कर सकता हूं जिसे मुझे अपने सीपीनल में डाउनलोड करना है? – EnexoOnoma

+0

बस इसे प्रदान किए गए लिंक से डाउनलोड करें, इसे अपने सर्वर पर अपनी शेष PHP फ़ाइलों के साथ अपलोड करें, और इसमें include_once ('mbfunctions-whatever.php') शामिल करें; – AlienWebguy

+0

ठीक है मैंने यह किया, लेकिन मुझे जो मिला वह सामग्री अंक – EnexoOnoma

12

मेरा मानना ​​है कि इस मुद्दे को अपने एन्कोडिंग के साथ है। आपका आउटपुट यूटीएफ -8 लेकिन आपका ब्राउज़र पात्रों में से किसी एक को समझ नहीं सकता है। जैसा कि मैंने इसे अतीत में जाना है, प्रश्न चिह्न प्रतीक वास्तव में ब्राउज़र द्वारा उत्पन्न किया गया है, इसलिए कोई खोज और प्रतिस्थापन नहीं है .... यह आपके एन्कोडिंग को ठीक करने या इसे आउटपुट करने से पहले स्ट्रिंग से अज्ञात वर्णों को खत्म करने के बारे में है ...

यदि आपके पास डेटा के स्रोत तक पहुंच है, तो आप यह सुनिश्चित करने के लिए डीबी सेटिंग्स जांचना चाहेंगे कि यह ठीक से एन्कोड किया गया है ... यदि नहीं, तो आपको php का उपयोग करके डेटा को कन्वर्ट करने के लिए कुछ मिलना होगा ..

mb_convert_encoding($string, "UTF-8"); 
+0

हमम, मुझे डाउनवोट क्यों मिला? – espradley

+1

+1 ऐसा लगता है कि आपने ओपी को "यूटीएफ -8" तर्क के साथ सही दिशा में भेजा है, यह सुनिश्चित नहीं है कि कोई इसे वोट क्यों देगा। –

+1

धन्यवाद espradley। अगर मैं इस 7000 बार ऊपर उठा सकता हूं, तो मैं चाहता हूं। मैं अक्षरसेट जेल से बच गया हूँ। यह टेम्पलेट स्तर पर चीजों को ठीक करने के लिए काम करता है। – Tom

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