मैं (एक SQLite डेटाबेस में) है निम्न स्ट्रिंग:PHP: क्या यूटीएफ -8 स्ट्रिंग को सही ढंग से सबमिट करना संभव है?
Лампа в вытяжке на кухне меняется, начиная с вытаскивания белого штырька справа.
स्ट्रिंग सही ढंग से पीएचपी print
का उपयोग करके दिखाया गया है। मैं इस स्ट्रिंग के पहले 50 वर्ण प्राप्त करना चाहता हूं, यानी
Лампа в вытяжке на кухне меняется, начиная с вытас
।
मैं दोनों substr उपयोग करने की कोशिश की है और mb_substr, और
Лампа в вытяжке на кухне ме�
है, यानी केवल 28 वर्ण मिलता है।
एमबीस्ट्रिंग की समस्याओं के बारे में यहां और कहीं और पढ़ने के बाद, मुझे एहसास हुआ कि यह वास्तव में 50 बाइट स्ट्रिंग (22 रूसी वर्ण = 44 बाइट्स प्लस 5 रिक्त स्थान प्लस 1 प्रश्न प्रतीक) है।
क्या इसका कोई अच्छा समाधान है? मेरे सभी तार यूटीएफ -8 हैं, इसलिए मैं निश्चित रूप से प्रत्येक बाइट इत्यादि के पहले बिट की जांच करके एक सबस्ट्र-फ़ंक्शन प्रोग्राम कर सकता हूं लेकिन यह निश्चित रूप से पहले किया जाना चाहिए, है ना?
अद्यतन: मेरा मानना है कि mb_substr
ठीक से काम नहीं करता है क्योंकि mb_detect_encoding()
does not work properly।
आप कहते हैं कि आपने 'mb_substr' की कोशिश की है, लेकिन क्या आपने एन्कोडिंग निर्दिष्ट करने का प्रयास किया है? क्या mb_substr ($ string, 0, 10, "UTF-8") उदाहरण के लिए काम करता है? – h2ooooooo
सुनिश्चित करें कि आप 'mb_substr' - 'mb_substr ($ इनपुट, 0, 50,' यूटीएफ -8 ') पर सही एन्कोडिंग पास करते हैं,' मेरे लिए काम करता है, 'mb_substr ($ इनपुट, 0, 50)' नहीं। – DCoder
@ h2ooooooo: मैंने नहीं किया है, मैं मैनुअल में इसे याद किया। और यह करता है। कृपया अपनी टिप्पणी को उत्तर के रूप में जोड़ें, मैं इसे स्वीकार करूंगा। – texnic