मैं वर्तमान में एक आईओएस ऐप पर काम कर रहा हूं जिसमें पूर्ण टेक्स्ट खोज होगी। खोज SQLite डेटाबेस पर एक चयन कथन करके किया जाता है, लेकिन समस्या यह है कि डेटाबेस में कई मानों में स्कैंडिनेवियाई अक्षरों (Æ, Ö, Á आदि) होते हैं और मुझे हेक्स मान प्राप्त किए बिना कथन को परिवर्तित करने में समस्या हो रही है पत्रों के लिए।स्कैंडिनेवियाई अक्षरों को सुरक्षित रखने के दौरान SQLite के लिए सही ढंग से एनएसएसटींग को एन्कोड करने के लिए कैसे करें
यहाँ मैं वर्तमान में क्या कर रहा है:
const char *sql = [[NSString stringWithFormat:
@"SELECT %@\
FROM Customer c\
JOIN Customer_Metadata cm ON c.CustomerId = cm.CustomerId\
WHERE cm.Name LIKE '%%%@%%'\
ORDER BY cm.Name", kCustomerSelect, searchString] UTF8String];
अब kCustomerSelect कॉलम मैं चयन करना चाहते हैं एक निरंतर है, और searchString उपयोगकर्ता इनपुट शामिल हैं।
यह सामान्य लैटिन अक्षरों के लिए एक आकर्षण की तरह काम करता है, लेकिन अगर मैं एक खोज स्ट्रिंग के रूप में उदाहरण के साथ पास करता हूं, तो मुझे सेंट \ xc3 \ xb6 मिलता है। मुझे पता है कि यूटीएफ 8 एन्कोडेड स्ट्रिंग को लॉग आउट करने से स्ट्रिंग का सही प्रतिनिधित्व नहीं होगा, लेकिन समस्या यह है कि मेरा चयन कथन मुझे कोई परिणाम नहीं दे रहा है।
मैं क्वेरी निष्पादित करने से पहले SQLite3_open() को कॉल कर रहा हूं और SQLite दस्तावेज़ से * * डेटाबेस के लिए डिफ़ॉल्ट एन्कोडिंग UTF-8 होगा यदि sqlite3_open() या sqlite3_open_v2() को देशी में रखा जाता है और मूल में यूटीएफ -16 बाइट ऑर्डर अगर sqlite3_open16() का उपयोग किया जाता है। "*।
मैंने UTF8String
को cStringUsingEncoding:
के साथ बदलकर अलग-अलग एन्कोडिंग का प्रयास करके विभिन्न एन्कोडिंग का उपयोग करने का प्रयास किया है। उनमें से कोई भी काम नहीं किया है (नहीं कि मैं उन्हें उम्मीद कर रहा था, लेकिन कम से कम कोशिश करना चाहता था)।
कोई भी और सभी सहायता, या सुझावों की सराहना की जाएगी।
संपादित करें अब मैंने डेटाबेस पर एक ही चयन कथन चलाने के लिए SQLite डेटाबेस ब्राउज़र का उपयोग करने का प्रयास किया है और मुझे कोई परिणाम नहीं मिल रहा है। यह मुझे विश्वास दिलाता है कि मेरे ग्राहक_Metadata तालिका को बनाने के लिए FTS3 का उपयोग करके मेरे साथ कुछ करने का हो सकता है।
MrDresden
अफसोस की बात है, आईसीयू और यूनिकोड 61 दोनों की कोशिश करने के बाद, मुझे अभी भी परिणाम नहीं मिलते हैं। जैसा कि आप कहते हैं मुझे कस्टम टोकननाइज़र बनाने की आवश्यकता हो सकती है। – Hrafn