2012-03-01 13 views
10

बनें हम एक आईफोन ऐप विकसित कर रहे हैं जो आईफोन से सर्वर-साइड PHP पर इमोटिकॉन्स भेजेगा और MySQL टेबल में डालेंगे। मैं सर्वर-साइड काम कर रहा हूं।आईफोन इमोटिकॉन्स MySQL में डालें लेकिन रिक्त मान

लेकिन सम्मिलित कथन के बाद सफलतापूर्वक निष्पादित करने के बाद, सम्मिलित मूल्य खाली हो गया।
मैं जो क्षेत्र (वर्कर) में सही ढंग से सम्मिलित कर सकता हूं वह पाठ है, लेकिन एक बार इमोटिकॉन्स,
सहित टेक्स्ट केवल डाला जा सकता है और इमोटिकॉन्स स्वचालित रूप से काटा जाएगा।

कोई मुझे फ़ील्ड प्रकार को ब्लॉग पर सेट करने के बारे में सलाह देता है ताकि वह छवि डेटा स्टोर कर सके।
लेकिन सम्मिलित मूल्य हमेशा इमोटिकॉन्स केस और आकार सहित नहीं होता है।

* मैं मूल्य डालने के लिए mysql_real_escape_string का उपयोग कर रहा हूं।

+0

हमें डालने का विवरण दिखाएं –

+0

संक्षिप्त उत्तर: आपको MySQL में 'utf8mb4' का उपयोग करना होगा। –

उत्तर

22

अधिकांश आईओएस इमोजी यूनिकोड तालिका के मूल बहुभाषी विमान के ऊपर कोड बिंदुओं का उपयोग करते हैं। उदाहरण के लिए, (खुले मुंह और मुस्कान के साथ मुस्कुराते हुए चेहरे) यू + 1 एफ 604 पर है।

OS X character viewer

अब, http://dev.mysql.com/doc/refman/5.5/en/charset-unicode.html देखते हैं।

संस्करण 5.5 से पहले MySQL केवल बीएमपी, जो U + 0000 और U + FFFF के बीच अक्षर शामिल हैं के लिए UTF-8 का समर्थन करता है (यानी केवल वास्तविक UTF-8 के एक सबसेट, MySQL के utf8 असली UTF-8 नहीं है)। यह चरित्र बिंदु यू + 1 एफ 604 या अन्य समान "उच्च पात्रों" पर चरित्र को स्टोर नहीं कर सकता है। MySQL 5.5+ utf8mb4 (वास्तविक यूटीएफ -8), utf16 और utf32 का समर्थन करता है, जो इन वर्णों को एन्कोड करने में सक्षम हैं। यदि आप MySQL 5.5+ का उपयोग कर रहे हैं, तो इन कॉलम वर्ण सेटों में से एक का उपयोग करें और सुनिश्चित करें कि आप PHP से/से अपने कनेक्शन एन्कोडिंग के लिए एक ही वर्णसेट का उपयोग कर रहे हैं। यदि आप MySQL < 5.5 पर हैं, तो आपको BLOB कॉलम प्रकार का उपयोग करना होगा। उस प्रकार में "अक्षर" की देखभाल किए बिना कच्चे बाइट्स स्टोर करते हैं। नकारात्मकता यह है कि आप टेक्स्ट को कुशलता से खोज या अनुक्रमित करने में सक्षम नहीं होंगे।

+0

आपके उत्तर के लिए धन्यवाद। MySQL संस्करण जिसे हम अब उपयोग कर रहे हैं _5.1.54 _... तो, मैं ब्लॉब डेटा प्रकार का प्रयास करूंगा या _5.5_ पर अपग्रेड करूँगा और अपने क्षेत्र के लिए 'utf8mb4' का उपयोग करूंगा। मैं बाद में वापस आऊंगा;) –

+0

धन्यवाद @deceze। मैंने अभी पुष्टि की है कि हमारे MySQL _5.1.54_ में वर्चर से ब्लॉब तक फ़ील्ड प्रकार को बदलने के बाद इमोटिकॉन्स सही तरीके से संग्रहीत किए जाएंगे। हम चर्चा कर रहे हैं कि हमारे सर्वर-साइड पर क्या लागू होना चाहिए क्योंकि कुछ कॉन्फ़िगरेशन PHP कोड (या केकेपीएचपी फ्रेमवर्क) में बदल दिए जाएंगे। –

+1

अंत में, हमने ** 5.5 + ** तक अपग्रेड किया और इमोटिकॉन्स सामान्य रूप से प्रदर्शित होते हैं, ताकि यह हमारे भविष्य के विकास के साथ संगत हो सके। धन्यवाद, @deceze। –

1

कुछ इमोजी वर्ण पुराने गैर-ब्लॉबड mysql कॉन्फ़िगरेशन के साथ काम करते हैं क्योंकि उन्हें 3 बाइट कोडपॉइंट का उपयोग करके एन्कोड किया जाता है और MySQL एक बाइट वर्ण स्टोर कर सकता है। यदि आप MySQL को अपग्रेड नहीं कर सकते हैं और न ही किसी भी कारण से ब्लॉब्स का उपयोग कर सकते हैं, तो आप 4 बाइट कोडपॉइंट्स को साफ़ कर सकते हैं और 3 बाइट वाले रख सकते हैं।

☺❤✨❕❔✊✌✋☝☀☔☁⛄⚡☎➿✂⚽⚾⛳ ♠ ♥ ♣:

आपके कंप्यूटर इमोजी क्षमताएं हैं, यहाँ 3 बाइट आईओएस इमोजी की एक सूची है ♦ 〽☕⛪⛺⛲⛵✈⛽⚠♨1⃣2⃣3⃣4⃣5⃣6⃣7⃣8⃣9⃣0⃣ # ⃣⬆⬇⬅➡↗↖↘↙ ◀ ▶ ⏪⏩♿㊙㊗✳✴♈♉♊♋♌♍♎♏♐♑♒♓⛎⭕❌ © ® ™

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